1с убрать пустые строки в запросе
В ходе работы с запросами любому программисту приходится так или иначе взаимодействовать с пустыми значениями. Что мы понимаем под пустым значением?
Пустое значение – это или отсутствие значения, или значение по умолчанию для типа данных. С примитивными типами все довольно просто: значением по умолчанию является некое начальное значение, служащее точкой отсчета.
Виды пустых значений
Рассмотрим типы пустых значений, которые могут встретиться или потребоваться в запросе.
- Для типа Число – пустым значением является ноль – 0.
- Для типа Строка – пустая строка – «».
- Для типа Дата – первое января первого года – 01.01.0001 00:00:00. Именно с этой даты ведется отсчет времени в 1С.*
- Для типа Булево – значением по умолчанию, технически, является Ложь, но логически оба значения типа являются заполненными. Поэтому принятие решения о том пустое значение Ложь или нет, основывается на логике конкретного алгоритма.
*Будьте внимательны, вне 1С существуют различные системы счисления дат с разными точками отсчета.
Отсутствующее значение в полном смысле соответствует только типу Null. Этот тип содержит лишь одно значение, которое обозначает отсутствие значения.
Похожий на него тип Неопределено тоже содержит лишь одно значение, но Неопределено означает не отсутствие данных, а лишь невозможность определить значение по умолчанию для типа. Неопределено является значением по умолчанию для составных, в том числе не определенных явно, типов. Например, значение в новой строке таблицы значений в колонке, для которой тип не определен явно.
Со ссылочными типами намного меньше неопределенности. Все ссылочные типы предусматривают пустое значение. Пустое значение — это та же самая ссылка с указанием типа данных, но без уникального идентификатора конкретного значения. Благодаря этому мы можем обращаться с пустой ссылкой как с обычной и применять к ней все предусмотренные платформой методы, работая с ней как с полноценным значением.
Работа с пустыми значениями в запросе
Независимо от того, необходимо ли вам явно ввести в результат запроса пустое значение или сравнить с ним существующие значения, необходимо знать, каким образом описывать пустые значения в запросе.
Типы Число, Строка, Булево описываются в запросе как во встроенном языке:
Неопределено, являясь по существу примитивным типом, описывается аналогично:
Пустые ссылочные значения определяются немного сложнее. У всех ссылочных объектов предусмотрено предопределенное служебное значение ПустаяСсылка. Благодаря этому есть возможность единым способом выбрать пустую ссылку – через функцию Значение:
Возможности работы со значениями типа Null несколько богаче. Как и другие примитивные типы, Null описывается так же, как во встроенном языке. Помимо этого, предусмотрены специальный оператор Есть Null и функция ЕстьNull.
- Оператор Есть Null позволяет создать логическое выражение сравнивающее выбранное значение со значением Null.
- Функция ЕстьNull возвращает первый аргумент, если он не равен Null, и второй аргумент в обратном случае.
Выражения, определяющие пустые значения, можно использовать в любых разделах запроса поддерживающих выражения. Например, вы можете добавить пустую ссылку в секцию Выбрать или проверку на Null в Условие.
Практические примеры
Проверка на пустую ссылку
С использованием функции Значение
С использованием оператора Есть Null
Null при левом или полном соединении
Проверка на Null
Пример демонстрирует частую практическую ситуацию, когда при левом соединении, для первой таблицы не находится соответствия во второй. В этом случае все поля второй таблицы будут равны Null.
Обработка Null-значений
Модификация предыдущего запроса для демонстрации часто встречающейся методики по получению каких-либо значений по умолчанию, взамен отсутствующих. В данном примере с использованием функции ЕстьNull, производится замена отсутствующего значения остатка, на логически правильное 0.
В рамках этой статьи мы рассмотрели различные типы пустых значений и их свойства, изучили способы определения различных типов пустых значений в запросах, а в практической части убедились в простоте применения рассмотренного материала.
NULL – отсутствующие значения.
Не путать с нулевым значением! NULL – это не число, не равно пробелу, пустой ссылке, Неопределено.
NULL – типообразующее значение, т.е. есть тип NULL и единственное значение этого типа.
NULL значения появляются в запросе в следующих ситуациях:
а) Внешнее соединение, при котором не было найдено соответствующей записи в другой таблице (при левом – во второй, при правом – в первой, при полном – в обоих)
б) Обращение к реквизитам элементов для группы и наоборот.
в) NULL в списке полей выборки (ВЫБРАТЬ)
г) Обращение к реквизитам для битой ссылки
ЕСТЬ NULL используется в операторе ВЫБРАТЬ (как бы проверя, что значение это есть пустое ( Значение ЕСТЬ NULL )):
Код 1C v 8.х
еще пример:
Код 1C v 8.х
Функция ЕСТЬNULL (значение, РезультатЕслиNULL) возвращает значение своего первого параметра, в случае если он не равен NULL, и значение второго параметра в противном случае
Является свернутым ВЫБОР…КОНЕЦ, но ЕСТЬNULL предпочтительнее.
Код 1C v 8.х
еще пример:
Код 1C v 8.х
В данном примере получаются все элементы справочника номенклатуры, после чего, для каждой номенклатуры из регистра накопления получаются текущие остатки. Т.к. для номенклатуры, по которой отсутствуют остатки, виртуальная таблица остатков не запись вернет, то в результате соединения в поле "УчетНоменклатурыОстатки.КоличествоОстаток" будут значения NULL для номенклатуры, по которой не было остатков. Для того чтобы вместо значения NULL в результате запроса присутствовало значение 0, мы использовали функцию ЕСТЬNULL(), которая осуществит желаемую замену.
ЕСТЬNULL отличается от ВЫБОР по следующим причинам:
а) При ЕСТЬNULL лучше читается запрос (проще)
б) При ЕСТЬNULL, если проверяется сложное выражение, то работает быстрее, поскольку вычисляется один раз
в) При ЕСТЬNULL выражение замены приводится к типу проверяемого выражения, если оно имеет тип Строка (длина) или Число (разрядность).
Нельзя проверять значения на NULL обычным равенством, потому что в SQL действует трехзначная логика – Истина, Ложь, NULL, и результатом такого сравнения будет UNKNOWN, что в 1С 8.0 аналогично ЛОЖЬ.
NULL <> 0, поэтому при левых внешних соединениях спр. Номенклатура с таблицами остатков, цен, Контрагентов со взаиморасчетами при отсутствии таких записей там будет NULL, который не равен 0. Лучшее решение – ЕСТЬNULL
Рассмотрим основные методы использования пустых значений в условиях запросов 1С 8.3.
Проверка на NULL
выполняется с помощью конструкции ЕСТЬ NULL, например:
ВЫБРАТЬ
ВнутренниеЗаказыОстатки.Заказчик,
ВнутренниеЗаказыОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ВнутренниеЗаказы.Остатки КАК ВнутренниеЗаказыОстатки
ГДЕ
ВнутренниеЗаказыОстатки.КоличествоОстаток ЕСТЬ NULL
Получите 267 видеоуроков по 1С бесплатно:
Пустая дата в запросе 1С
Пустая дата в запросе устанавливается конструкцией ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0), пример:
ВЫБРАТЬ
СчетНаОплатуПокупателю.Ссылка,
СчетНаОплатуПокупателю.ДатаОтгрузки
ИЗ
Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
ГДЕ
СчетНаОплатуПокупателю.ДатаОтгрузки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
Пустая ссылка (значение) в запросе 1С 8.2 и 8.3
Для ссылочных значений (справочники, документы, перечисления, планы счетов и т.д) для проверки необходимо использовать конструкцию «ЗНАЧЕНИЕ(Справочник.ИмяСправочника.ПустаяСсылка)». Например:
ВЫБРАТЬ
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
Проверка на пустую строку в запросе 1С
В условиях для нахождения пустой строки необходимо использовать пустое значение строки — «», например:
Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
( голосов, в среднем: из 5)
Поддержите нас, расскажите друзьям!
СПРОСИТЕ в комментариях!
Запрос1.Текст = «ВЫБРАТЬ
|РемонтныйЛист.Номер,
|РемонтныйЛистМатериалыЗамена.ДатаРемонта,
|РемонтныйЛист.Проведен,
|РемонтныйЛист.Водитель1,
|РемонтныйЛист.Водитель2,
|РемонтныйЛист.Водитель3,
|РемонтныйЛистМатериалыЗамена.КолвоЧасов
|ИЗ
|Документ.РемонтныйЛист.МатериалыЗамена КАК РемонтныйЛистМатериалыЗамена
|ЛЕВОЕ СОЕДИНЕНИЕ Документ.РемонтныйЛист КАК РемонтныйЛист
|ПО РемонтныйЛистМатериалыЗамена.Ссылка = РемонтныйЛист.Ссылка
|ГДЕ
//|РемонтныйЛистМатериалыЗамена.ДатаРемонта >= Значение(«ДатаНач») И РемонтныйЛистМатериалыЗамена.ДатаРемонта = Значение(“ДатаНач”)
ПРАВИЛЬНО
//|РемонтныйЛистМатериалыЗамена.ДатаРемонта >= &ДатаНач
НЕ ПРАВИЛЬНО
//|РемонтныйЛист.Водитель3 НЕ ЗНАЧЕНИЕ (РемонтныйЛист.Водитель3.ПустаяСсылка)
ПРАВИЛЬНО
//|РемонтныйЛист.Водитель3 <> Значение(Справочник.Водители.ПустаяСсылка)
Где «Водители» имя справочника, тип которого имеет реквизит «Водитель3» (возможно сотрудники или физические лица)
Синтаксис не правильный так как я тока учусь:) спасибо большое. но водитель это реквизит не справочника а документа. имеет ли это значение?
а еще подскажите пожалуйста как вот на основании этого же запроса заполнить ячейки в отчете на пересечении водителя и даты необходимо поставить колво часов сколько он был в ремонте
РемонтныйЛист.Водитель3 — Это реквизит
Значение(Справочник.Водители.ПустаяСсылка) — это значение, которое вы передаете что бы наложить отбор, а Справочник.Водители — это ТИП реквизита РемонтныйЛист.Водитель3.
В конечном счете суть условия какая? Отобрать только те позиции, для которых выражение будет равняться ИСТИНА.
С этим я уже разобралась. вы правы были что это реквизит справочника Физические лица.у меня теперь проблема в том что он ругается на РемонтныйЛист.Проведен = Истина
Здравстуйте! Подскажите пожалуйства каким способом можно исключить пустые строки из запроса. 1с 8.2. В запросе при выборке стоит условие ВЫБОР КОГДА ТЕХКАРТА.НОМЕРОПЕРАЦИИ=КОРЕКТИРОВКА.НОМЕРОПЕРАЦИИ ТОГДА ВЫРАЖЕНИЕ1 ИНАЧЕ NULL NULL я сделал для чтого чтобы при такой выборке ненужные строки сделать пустыми, а потом их убрать. А вот как убрать не осмыслю. Вариант выгрзит ь в ТЗ не подходит т.к. дальнейшая работа выполнется именно с результатом запроса. Как быть? Как исключить пустые строки, ну или как по ветке иначе вообще не включать в выборку строку не соотв условию. Спасибо большое!
Вместо ВЫБОР КОГДА ТЕХКАРТА.НОМЕРОПЕРАЦИИ=КОРЕКТИРОВКА.НОМЕРОПЕРАЦИИ ТОГДА ВЫРАЖЕНИЕ1 написать ГДЕ ТЕХКАРТА.НОМЕРОПЕРАЦИИ=КОРЕКТИРОВКА.НОМЕРОПЕРАЦИИ
В условие запроса добавь свое сравнение. Если не выполняется - чтобы эти данные не брались вообще.
Очередной образец долбобейства. Наложить условие ТЕХКАРТА.НОМЕРОПЕРАЦИИ=КОРЕКТИРОВКА.НОМЕРОПЕРАЦИИ
ВЫБРАТЬ ТехнологическиеКартыСпецификацийПланированияСрезПоследних.КорректировкаТехКарты.Ссылка КАК КорректировкаТехКартыСсылка КОГДА НЕ ТехкартыИИсходныеКомплектующие.КорректировкаТехКартыСсылка ЕСТЬ NULL
есть ли какой способ в самом результат убрать пустые строки?
эээ. здесь все жадные. деньгу с тарелкой супа обожают.
Интересно, а что дальше ты с результатом запроса будешь делать? Почему нельзя вытащить в таблицу значений и поудалять оттуда пустые строки? На самый крайний случай сделай так: 1. Выполни свой запрос. 2. Выгрузи результат в ТЗ. 3. Пройди по таблице, удали все что не нужно (пустые значения) 4. Выполни запрос к новой таблице, выбери все поля. Профит, хоть и через ж.
интересна логика удаления "пустой" строки. она вся пустая будет? нах выбираешь? не вся пустая? значит свернуть? как сворачивать?
Т.е. после этих действий тз снова будет типа "РезультатЗапроса". Мне не понятен пункт 4.
Используй временные таблицы (ПОМЕСТИТЬ) и пакетный запрос
Да, она снова будет РезультатЗапроса, если ты пожелаешь :)
почитайте запрос. она вся пустая, но пустая она только в случае если нет корректировки (грубо говоря), поэтому и условие
совет достоин увесистого леща, кстати. не пятница же. тебе что мешает в запросе указать те же условия, по которым собираешься таблицу потом чистить?
ТехнологическиеКартыПроизводстваМаршрут.ТехнологическаяОперация.Ссылка = &Прессование ВОТ ЗАЧЕМ ТАК ПИСАТЬ?!
Автор не ищет легких путей наложения условий :) Предпочитает экзотику..
Зачем эта долбобейская муета с кейсами? Объясни внятно, что нужно получить.
+ а в говорит о технической безграмотности вообще и программиста в частности.
свой запрос напиши вместо этого. и не надо ничего объяснять будет
1 есть регистр сведений (техкартыспецификацийпланирования).измерения "спецификация";ресурсы "техкарта"; в регистр добавлено измерение КорректировкаТехкарты (СправочникСсылка.КорректировкиТехКарт) 2 регистр заполняется в справочнике Спецификации; 3 теперь когда нужно получить отчет выполнятся запрос: в запросе нужно по спецификации найти техкарту и заменить опр данные данными из корректировки.
+замена данных в табличной части маршрут из тч справочника корректировки
наверно проще все таки использовать . почему этот способ использовать не желательно?
Потому что это по сути долбое..зм, так делать. Проще и правильнее включить в запрос условия, которые уберут пустые значения. Но если ты не хочешь идти по этому пути, то дело хозяйское.
хорошо стану - а нежелательно и использовать почему
я бы рад пойти по этому пути но тут есть свои противоречия.
корректировок много, правильно понимаю? в каждой заполнено только изменяемое поле?
корректировок много, в каждой заполнено только изменяемое поле, вообще их несколько (изменяемых полей), но это не важно - разобраться хотябы с одним
на РС с ПВХ такие вещи надо делать. отделался бы срезом последних. а история корректировок нужна? почему справочник выбрали?
потому что по каждой техкарте хранится своя корректировка, корректироку удобно хранить в справочнике в тч с заменяемыми полями
есть! если поставить техкарта.номерОперации=Коректировка.НомерОпераци в условие запроса, то результат будет верным только если корректировка присутствует. если корректировки нет - запрос вообще ничего не выдаст
ВЫБОР КОГДА НЕ ТехкартыИИсходныеКомплектующие.КорректировкаТехКартыСсылка ЕСТЬ NULL ТОГДА ТехнологическиеКартыПроизводстваМаршрут.НомерОперации = КорректировкаТехКартСписокКорректировок.НомерОперации КОНЕЦ
Функции работы со строками в 1С
Рассмотрим основные функции встроенного языка программирования 1С.
Строка
Функция Строка() позволяет получить текстовое представление переменных других типов.
СтрДлина
Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.
СокрЛП, СокрЛ, СокрП
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.
Лев, Прав, Сред
С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).
Найти
ВРег, НРег, ТРег
ПустаяСтрока
Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.
Аналогично можно проверить строку на пустое значение следующим образом:
СтрЗаменить
Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:
СтрЧислоСтрок
Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).
Например, построчная обработка текстового фрагмента:
СтрПолучитьСтроку
СтрЧислоВхождений
Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.
Символ и КодСимвола
Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.
Часто встречающиеся задачи по работе со строками в 1С
Рассмотрим классические примеры решения задач в работе с текстовыми переменными.
Конкатенация строк в 1С
Преобразовать число в строку
Однако может смущать наличие неразрывного пробела.
Его можно убрать с помощью замены неразрывного пробела на пустую строку:
или с помощью метода Формат:
Кавычки в строке 1С
Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.
Символ переноса строки
Сравнение строк в 1С
Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:
Таким образом, мы получим более точное сравнение двух строк.
Убрать пробелы в строке 1С
Достаточно часто нужно убрать пробелы в строке 1С.
Если требуется убрать пробелы справа и слева:
Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:
Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:
Другие статьи по 1С:
1С 8.3 Удаление дублирующих строк в Таблице значений
Функция УдалениеДублирующихСтрокТЗ ( ТЗ , КолонкиТЗ = "" ) Экспорт
Если ПустаяСтрока ( КолонкиТЗ ) Тогда // свертка ТЗ по всем колонкам
Для Каждого ТЗКолонка Из ТЗ . Колонки Цикл
КолонкиТЗ = КолонкиТЗ + ?( ПустаяСтрока ( КолонкиТЗ ), "" , "," ) + ТЗКолонка . Имя ;
КонецЦикла;
КопияТЗ = ТЗ . Скопировать ();
КопияТЗ . Свернуть ( КолонкиТЗ );
КолонкиЗапроса = "ТЗ." + СтрЗаменить ( КолонкиТЗ , "," , ",ТЗ." );
Запрос = Новый Запрос ;
Запрос . Текст = "ВЫБРАТЬ
| " + КолонкиЗапроса + "
|ПОМЕСТИТЬ ВТ_ТЗ
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|//////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| " + СтрЗаменить ( КолонкиЗапроса , "ТЗ." , "ВТ_ТЗ." ) + "
|ИЗ
| ВТ_ТЗ КАК ВТ_ТЗ
|" ;
Запрос . УстановитьПараметр ( "ТЗ" , ТЗ );
РезультатЗапроса = Запрос . Выполнить ();
Если Не РезультатЗапроса . Пустой () Тогда
ТаблицаЗапроса = РезультатЗапроса . Выгрузить ();
КопияТЗ = ТЗ . СкопироватьКолонки ();
Для Каждого СтрокаТЗ Из ТаблицаЗапроса Цикл
ОтборСтруктура = Новый Структура ( КолонкиТЗ );
ЗаполнитьЗначенияСвойств ( ОтборСтруктура , СтрокаТЗ );
ОтборТЗ = ТЗ . НайтиСтроки ( ОтборСтруктура );
Для Каждого СтрокаОтбораТЗ Из ОтборТЗ Цикл
НоваяСтрокаТЗ = КопияТЗ . Добавить ();
ЗаполнитьЗначенияСвойств ( НоваяСтрокаТЗ , СтрокаОтбораТЗ );
Прервать;
КонецЦикла;
КонецЦикла;
Иначе
КопияТЗ = ТЗ ;
КонецЕсли;
ТЗ = Новый ТаблицаЗначений ;
// Добавляем колонки в таблицу значений
КвалификаторыСтроки = Новый КвалификаторыСтроки ( 50 );
НовСтрока = Новый ОписаниеТипов ( "Строка" , , КвалификаторыСтроки );
ТЗ . Колонки . Добавить ( "Животное" , НовСтрока );
ТЗ . Колонки . Добавить ( "Размер" , НовСтрока );
ТЗ . Колонки . Добавить ( "Цвет" , НовСтрока );
// Добавляем строки в таблицу значений
Стр = ТЗ . Добавить ();
Стр . Животное = "Слон" ;
Стр . Размер = "большой" ;
Стр . Цвет = "зеленый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Слон" ;
Стр . Размер = "маленький" ;
Стр . Цвет = "желтый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Слон" ;
Стр . Размер = "маленький" ;
Стр . Цвет = "красный" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Тигр" ;
Стр . Размер = "здоровый" ;
Стр . Цвет = "розовый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Тигр" ;
Стр . Размер = "огромный" ;
Стр . Цвет = "черный" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Тигр" ;
Стр . Размер = "здоровый" ;
Стр . Цвет = "фиолетовый" ;
УдалениеДублирующихСтрокТЗ ( ТЗ , "Животное,Цвет" );
ТЗ = Новый ТаблицаЗначений ;
// Добавляем колонки в таблицу значений
КвалификаторыСтроки = Новый КвалификаторыСтроки ( 50 );
НовСтрока = Новый ОписаниеТипов ( "Строка" , , КвалификаторыСтроки );
ТЗ . Колонки . Добавить ( "Животное" , НовСтрока );
ТЗ . Колонки . Добавить ( "Размер" , НовСтрока );
ТЗ . Колонки . Добавить ( "Цвет" , НовСтрока );
// Добавляем строки в таблицу значений
Стр = ТЗ . Добавить ();
Стр . Животное = "Слон" ;
Стр . Размер = "большой" ;
Стр . Цвет = "зеленый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Слон" ;
Стр . Размер = "маленький" ;
Стр . Цвет = "желтый" ;
Стр = ТЗ . Добавить (); //дубль
Стр . Животное = "Слон" ;
Стр . Размер = "маленький" ;
Стр . Цвет = "желтый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Тигр" ;
Стр . Размер = "здоровый" ;
Стр . Цвет = "розовый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Тигр" ;
Стр . Размер = "огромный" ;
Стр . Цвет = "черный" ;
Стр = ТЗ . Добавить (); //дубль
Стр . Животное = "Тигр" ;
Стр . Размер = "огромный" ;
Стр . Цвет = "черный" ;
УдалениеДублирующихСтрокТЗ ( ТЗ , "Животное,Цвет" );
ТЗ = Новый ТаблицаЗначений ;
// Добавляем колонки в таблицу значений
КвалификаторыСтроки = Новый КвалификаторыСтроки ( 50 );
НовСтрока = Новый ОписаниеТипов ( "Строка" , , КвалификаторыСтроки );
ТЗ . Колонки . Добавить ( "Животное" , НовСтрока );
ТЗ . Колонки . Добавить ( "Размер" , НовСтрока );
ТЗ . Колонки . Добавить ( "Цвет" , НовСтрока );
// Добавляем строки в таблицу значений
Стр = ТЗ . Добавить ();
Стр . Животное = "Слон" ;
Стр . Размер = "большой" ;
Стр . Цвет = "зеленый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Слон" ;
Стр . Размер = "маленький" ;
Стр . Цвет = "желтый" ;
Стр = ТЗ . Добавить (); //дубль
Стр . Животное = "Слон" ;
Стр . Размер = "маленький" ;
Стр . Цвет = "желтый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Тигр" ;
Стр . Размер = "здоровый" ;
Стр . Цвет = "розовый" ;
Стр = ТЗ . Добавить ();
Стр . Животное = "Тигр" ;
Стр . Размер = "маленький" ;
Стр . Цвет = "черный" ;
Стр = ТЗ . Добавить (); //дубль т.к. размер не учитывается
Стр . Животное = "Тигр" ;
Стр . Размер = "огромный" ;
Стр . Цвет = "черный" ;
Читайте также: