Имя: Пароль:
1C
1С v8
Проверка строк на заполненность ячеек в таблице
0 Pyryrym
 
21.08.20
16:43
Мне надо из таблицы перенести данные в другую, но при этом если какая то ячейка не заполнена, то эта строка не копируется. Я написал такой код

        НачатьТранзакцию();
    СтрокаДанных = ТаблицаЗначений.Добавить();
    Артикул = Значение1;
    Если Не ЗначениеЗаполнено(Артикул) Тогда
        ОтменитьТранзакцию();
        Продолжить;
    КонецЕсли;
    СтрокаДанных.Артикул = Артикул;
    Наименование = Значение2;
    Если Не ЗначениеЗаполнено(Группа) Тогда
        ОтменитьТранзакцию();
        Продолжить;
    КонецЕсли;
        ЗафиксироватьТранзакцию();


У меня в первой строке отсутствует наименование, однако новая строка только с артикулом все равно создается.
1 Pyryrym
 
21.08.20
16:43
И это в цикле
2 ДенисЧ
 
21.08.20
16:49
Транзакции на ТЗ не работают.

Просто сначала проверяй заполненость, а потом уже строку добавляй.
3 Жан Пердежон
 
21.08.20
16:49
всё неправильно и зачем тут Транзакции?
4 ZDenis
 
21.08.20
16:56
Для каждого Строка Из ТЗ_1 Цикл
    Копируем = Истина;
    Для каждого Колонка из ТЗ_1.Колонки Цикл
        Если Не ЗначениеЗаполнено(Строка[Колонка]) Тогда
            Копируем = Ложь;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Если Копируем Тогда
        Стр = ТЗ_2.Добавить();
        ЗаполнитьЗначенияСвойств(Стр, Строка);
    КонецЕсли;
КонецЦикла;
5 Мимохожий Однако
 
21.08.20
17:01
Если  не заполнена строка - удалить строку
6 Pyryrym
 
21.08.20
17:02
Я неправильно понял, что такое транзакции, спасибо :*
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс