Выполнить условие при переборе таблицы знаяения
Найденные решения
(6) проверку нужно внутри цикла делать
НовДок = Неопределено;
Для Каждого СтрокаТЗ Из ТЗ Цикл
Если ТЗ.Индекс(СтрокаТЗ)%20000 = 0 Тогда
Если НовДок <> Неопределено Тогда
НовДок.Записать();
КонецЕсли;
НовДок = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
КонецЕсли;
СтрокаТЧ = НовДок.Материалы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЧ, СтрокаТЗ);
КонецЦикла;
Если НовДок <> Неопределено Тогда
НовДок.Записать();
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Согласен. Про это и хотел спросить
Так не работает. Если запихнуть создание документа в цикл, то будет создаваться каждую строку новый документ.
Если ТЗ.Индекс(Строка)%20000 = 0 Тогда
НовДок = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
Для Каждого Строка Из ТЗ Цикл
ТЧ = НовДок.Материалы.Добавить();
ТЧ.Номенклатура = ТЗ.Номенклатура;
ТЧ.Количество = ТЗ.Количество;
ТЧ.Сумма = ТЗ.Сумма;
КонецЦикла;
НовДок.Записать();
КонецЕсли;
ПоказатьТак не работает. Если запихнуть создание документа в цикл, то будет создаваться каждую строку новый документ.
(6) проверку нужно внутри цикла делать
НовДок = Неопределено;
Для Каждого СтрокаТЗ Из ТЗ Цикл
Если ТЗ.Индекс(СтрокаТЗ)%20000 = 0 Тогда
Если НовДок <> Неопределено Тогда
НовДок.Записать();
КонецЕсли;
НовДок = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
КонецЕсли;
СтрокаТЧ = НовДок.Материалы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЧ, СтрокаТЗ);
КонецЦикла;
Если НовДок <> Неопределено Тогда
НовДок.Записать();
КонецЕсли;
Показать
(7) Я бы по-другому сделал:
НовДок = Неопределено;
Если ТЗ.Количество() > 0 Тогда
НовДок = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
КонецЕсли;
Для Каждого СтрокаТЗ Из ТЗ Цикл
СтрокаТЧ = НовДок.Материалы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЧ, СтрокаТЗ);
Если ТЗ.Индекс(СтрокаТЗ)%20000 = 0 Тогда
НовДок.Записать();
НовДок = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
КонецЕсли;
КонецЦикла;
Если НовДок <> Неопределено Тогда
НовДок.Записать();
КонецЕсли;
Показать
(15) вот так попробуйте.
НовДок = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
Для Каждого СтрокаТЗ Из ТЗ Цикл
Если ТЗ.Индекс(СтрокаТЗ)%20000 = 0 И ТЗ.Индекс(СтрокаТЗ) > 0 Тогда
НовДок.Записать();
НовДок = Документы.ПриходнаяНакладная.СоздатьДокумент();
НовДок.Дата = ТекущаяДата();
КонецЕсли;
СтрокаТЧ = НовДок.Материалы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТЧ, СтрокаТЗ);
КонецЦикла;
Если НовДок.Материалы.Количество() > 0 Тогда
НовДок.Записать();
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот