Механизм зачета сумм по одному контрагенту но по разным договорам в 1с БП 8.2

Новая тема
Показывать по сообщений
Ответ на пост №30
Макс БУх, вы меня не поняли :)

Ошибка вот здесь
Для каждого строка из ТаблицаСумм цикл
ЧЗ = новый ТаблицаЗначений;
чз.Колонки.Добавить("Контрагент" ;
Чз.Колонки.Добавить("Договор" ;
чз.Колонки.Добавить("Кредиторка" ;
строкаЧЗ=чз.Добавить();
строкачз.контрагент=строка.контрагент;
строкаЧз.договор=строка.Договор;
СтрокаЧз.Кредиторка=Строка.Кредиторка;
НЧЗ=новый ТаблицаЗначений;
нчз.Колонки.Добавить("Контрагент" ;
нчз.Колонки.Добавить("Договор" ;
нчз.Колонки.Добавить("Дебиторка" ;
строканчз=нчз.Добавить();
строканчз.контрагент=строка.контрагент;
строканчз.договор=Строка.Договор;
строканчз. *** . *** ;
конеццикла;

Должно быть вот так
// создаем первую тз
ЧЗ = новый ТаблицаЗначений;
чз.Колонки.Добавить("Контрагент" ;
Чз.Колонки.Добавить("Договор" ;
чз.Колонки.Добавить("Кредиторка" ;

// создаем вторую тз
НЧЗ=новый ТаблицаЗначений;
нчз.Колонки.Добавить("Контрагент" ;
нчз.Колонки.Добавить("Договор" ;
нчз.Колонки.Добавить("Дебиторка" ;

// заполняем тз перебором табличной части
Для каждого строка из ТаблицаСумм цикл

строкаЧЗ=чз.Добавить();
строкачз.контрагент=строка.контрагент;
строкаЧз.договор=строка.Договор;
СтрокаЧз.Кредиторка=Строка.Кредиторка;

строканчз=нчз.Добавить();
строканчз.контрагент=строка.контрагент;
строканчз.договор=Строка.Договор;
строканчз. *** . *** ;
конеццикла;

Причем я бы в цикле еще добавила проверки и сделала его вот таким, ну чтоб не плодить нулевые строки

Для каждого строка из ТаблицаСумм цикл

Если строка.Кредиторка > 0 Тогда
строкаЧЗ=чз.Добавить();
строкачз.контрагент=строка.контрагент;
строкаЧз.договор=строка.Договор;
СтрокаЧз.Кредиторка=Строка.Кредиторка;
КонецЕсли;


Если строка. ***  > 0 Тогда
строканчз=нчз.Добавить();
строканчз.контрагент=строка.контрагент;
строканчз.договор=Строка.Договор;
строканчз. *** . *** ;
КонецЕсли;

конеццикла;
Ответили: пост #32
Ответ на пост №31
uinny, спасибо! причем не просто за код, а за то, что я допер наконец-то: все же правильно, зачем в цикл само создание таблицы включать? Да, все гениальное, видимо, и правда просто, причем я уже второй раз попадаюсь на неверном "зацикливании". Еще раз спасибо, попробую отпишусь.
Ответили: пост #33
Ответ на пост №32
Макс БУх, пожалуйста. Не забудьте еще что у вас там СуммаЗачета почему-то дважды определялась, причем второй раз неправильно :)
Читают тему
(гостей: 1)

Быстрый переход