В Python строки рассматриваются как последовательность символов, что означает, что Python не поддерживает символьный тип данных; вместо этого один символ, записанный как p , рассматривается как строка длины 1.
Строки в С и С++
Это первая часть, в которой обсуждаются «традиционные» строки в С. В С++ существуют более удобные механизмы для работы со строковыми данными, эти механизмы рассматриваются во второй части статьи. А зачем вообще обсуждать неудобные С-строки, если есть С++? К сожалению, совсем забыть о строках в стиле С нельзя по двум причинам:
- существует большое количество библиотек (например, API операционных систем) работающих именно с С-строками
- строковые классы в С++ все равно основаны на традиционных С-строках, и если мы хотим разобраться в том, как они работают, нам придется понимать их основы.
Строковые литералы
Самая простая строковая сущность (под строковой сущностью я понимаю нечто, с чем можно работать как с привычной строкой) в С — это так называемый «строковый литерал». Он представляет собой последовательность символов, заключенную в двойные кавычки. Пример:
Пока я намеренно игнорирую вопрос о том, что есть строковый литерал с точки зрения компилятора или языка, ограничиваясь только его свойствами с точки зрения программиста.
Основное свойство строкового литерала — простота его использования. Не имея ни малейшего представления о том, чем он является на самом деле, мы можем использовать его практически везде, где от нас ждут строку. Например, в WinAPI-функцию SetWindowText (она задает текст, связанный с окном) нужно передать описатель окна и строку текста. И мы можем вызвать ее очень просто:
Но конечно, строковых литералов, естественно, фиксируемых при создании программы, будет маловато. Хотелось бы иметь возможность использовать переменные, не правда ли?
Строковые переменные
В С отсутствуют встроенные строковые типы в том смысле, в котором они есть в языках типа Basic и Pascal. И присущая этим языкам легкость оперирования строковыми переменными (присвоение, сравнение) в С недоступна. Что же такое строка в С?
- массив можно привести к указателю на его первый элемент, что неявно происходит при передаче массивов в функции, ожидающие указатели
- информация о размере массива переданного таким образом в функцию теряется
- в С не существует способа передать массив по значению с сохранением его размера
- указателя на первый элемент массива достаточно для работы со всем массивом, при условии что нам известна его длина.
Если вышеприведенные высказывания вызывают у вас затруднения, рекомендую сначала разобраться с этим вопросом, а уже потом читать эту статью.
Промокоды на Займер на скидки
В дальнейшем для простоты я по большей части буду говорить о массивах, но почти все сказанное относится и к указателям.
Итак, тип строк в С – массив. Однако каков тип элементов этого массива? Вообще говоря, возможны варианты. Исторически символ занимает 1 байт, в этом случае он имеет тип char . При этом существуют и другие кодировки, в которых символ представляется, например, двумя байтами. Для работы с такими строками требуются специальные функции.
Профессия — 1С » Таблица значений. Основные приемы работы.
- размер передаваемых в функцию массивов нужно указывать отдельно, получить его в функции нельзя
- такой подход не работает при использовании указателей, размер которых не зависит от длины последовательности, на которую они указывают.
В 1С программировании нет типизации, поэтому в одну и туже переменную можно записать как строку так и число или данное любого другого типа.
Максимально разумное количество строк в документе #410536
«строк в документе может быть 9999 (сегодня сам замерил)» yes! хотел бы я посмотреть на это! а ведь гугл мог упростить задачку 🙂 «А сколько?» разумность определяется задачами и тем, что будет происходить при проведении документа. Но ИМХО, лучше по 1000 делать и не париться
ну например какаянить групповая установка цен. делается один раз обработкой которая тупо текущую цену увеличивает на 3 процента. документ естественно никто никогда не открывает и руками не редактирует.
и не строк а номеров строк, ограниченных длиной поля таблички данных. долби хоть миллион. только дождаться окончания проведения такого дока = уже не в этой жизни.
Народ, я прекрасно сам понимаю, что это бред, однако упрямству Ген и Фин диров можно противостоять только если ткнуть их носом в некие официальные рекомендации.
эээ в регистр чем писать будешь? вроде как про семерку речь. ну еще один вариант: в базу грузят данные билинга. например платежи по картам. каждая карта — контрагент. в день один миллион новых контрагентов нужно по каждой карте грузить Д50 К62.х 🙂 операция с проводками. сколько делать проводок в операции??
да пофигу. В ОбработкеПроведения описать, с чем работаем и какие движения делаем — и всё. Я к тому клоню, что постановщику задачи предложить другие решения. Может и прокатит.
ихмо от 500 до 1000. тут еще важно сколько этот документ будет проводиться (например при программном перепроведение)
Во-первых, мне кажется, здесь что-то не то с постановкой задачи. Нужно пересмотреть необходимость заталкивания всей номенклатуры в табличную чать документа. Это попахивает бредом, независимо от количества документов. Может быть, подоойдет просто отчет?
Инвентаризация заяем нужна? Однако нужна, хоть и не проводится. И это примерног так же, не не инвентаризация — другие принципы заполнения и назначение. Верно. я тоже пытаюсь им это доказать, потому и спрашиваю насчет официальных рекомендаций 1С
Подобных рекомендаций от 1С я не встречал. Правда, я не Яндекс. Давай лучше сюда исходную задачу. Что им надо?
При переносе остатков я обычно формирую документы по 300 строк. Во всяком случае, больше 500 не советую.
Спасибо всем! Понял, про оф. рекомендации никто не слышал, однако по практике оптимально не более 500 — 1000 строк. Пошел отбиваться.
«Заказчики требуют создать документ» — не их дело совать нос в структуру программы. Пусть заказчих задачу ставит, а не структуру конфигурации рисует..
заказчик может соваться куда угодно и как угодно.. в плоть до требований сделать отдельный регистр для какойнить х.ни или сделать кнопочку желтой. на то он и заказчик.
заказчик может требовать сделать кнопочку желтой, а с регистром, те структурой данных должен идти в опу он может требовать бизнес логику и интерфейс
Многострочное поле — Компоненты.
Не имея ни малейшего представления о том, чем он является на самом деле, мы можем использовать его практически везде, где от нас ждут строку.
Группировка
Допустим, что нас больше не интересует дата, и мы хотим получить по каждому наименованию общее количество. То есть привести исходную таблицу вот к такому виду:
Наименование товара | Количество |
---|---|
Ручка | 10 |
Карандаш | 15 |
Лампа | 2 |
В этом случае нам надо сгруппировать строки таблицы. Напомню, что группировка в языке запросов также активно используется. А в таблице значений для этого используется метод Свернуть(КолонкиГруппировок, КолонкиСуммирования). В общем то, чтобы достигнуть результата нам потребуется всего одна строчка кода:
Работа со строками в командном интерпретаторе bash 📝
Сериализация таблиц значений
Таблица значений может сериализоваться с помощью объекта СериализаторXDTO. Проще говоря таблицу значений можно записать в формате XML или JSON, что открывает широкие возможности для передачи таблиц значений в качестве параметров при обмене данными. В том числе и через веб-сервисы.Рассмотрим использование обоих форматов.
Сериализация с использованием XML
В качестве примера выгрузим таблицу значений в строку XML, а потом создадим копию таблицы выполнив загрузку из строки XML:
Сериализация с использованием JSON
Начиная с версии платформы 8.3.7.1759 появилась возможность сериализации прикладных типов 1С:Предприятия в JSON. Принцип использования тот же, что и для XML:
Хочу обратить внимание на параметр НазначениеТипаXML.Явное в методе ЗаписатьJSON без кот
орого при чтении из строки будет выдаваться ошибка, либо надо будет при чтении указать тип объекта.
— данное утверждение может быть записано в одинарных или двойных кавычках, но оно вызовет SyntaxError , так как содержит как одинарные, так и двойные кавычки.
Копирование строк из таблицы 1С
В новых конфигурациях появилась замечательная возможность – копировать строки с содержимым, для этого просто выберите нужные строки, можно выбрать сразу несколько через зажатую клавишу Ctrl на клавиатуре, и через правую кнопку мыши вызовем контекстное меню, где будут пункты: «Скопировать строки» и «Вставить строки», для начала выберем «Скопировать строки».
Теперь мы может вставить строки, например, в эту же табличную часть или совсем в другой документ, например, в «Реализацию товаров и услуг», так же через правую кнопку мыши — «Вставить строки».
Длина строки
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы