Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

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

uinny
читатель
офлайн
Дата регистрации: 12.01.2008
Сообщений: 4814
Пост №31
 
26.02.2015 12:43
Ответ на пост №30

Макс БУх, вы меня не поняли :)

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

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

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

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

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

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

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

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

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


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

конеццикла;

Ответили: пост №32
Макс БУх
читатель
офлайн
Дата регистрации: 27.12.2011
Сообщений: 137
Пост №32
 
26.02.2015 12:48
Ответ на пост №31

uinny, спасибо! причем не просто за код, а за то, что я допер наконец-то: все же правильно, зачем в цикл само создание таблицы включать? Да, все гениальное, видимо, и правда просто, причем я уже второй раз попадаюсь на неверном "зацикливании". Еще раз спасибо, попробую отпишусь.

Ответили: пост №33
uinny
читатель
офлайн
Дата регистрации: 12.01.2008
Сообщений: 4814
Пост №33
 
26.02.2015 14:14
Ответ на пост №32

Макс БУх, пожалуйста. Не забудьте еще что у вас там СуммаЗачета почему-то дважды определялась, причем второй раз неправильно :)

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация