Пигу я обработочку в которой перебираются операции введенные вручную и добавляются определнные проводки. С толкнулся с проблеммой: если в выборке несколько операций то на второй в момент присвоения Дебет.счет = ... вылетает ошибка "Нельзя изменять записанные проводки!"
код примерно такой:
Опер.НоваяПроводка();
Опер.Дебет.Счет = Сч10;
...
Опер.Кредит.Счет = ...
код примерно такой:
Опер.НоваяПроводка();
Опер.Дебет.Счет = Сч10;
...
Опер.Кредит.Счет = ...
По теме из базы знаний
- Агрегатное суммирование строк в запросе – сложно, но не невозможно
- Расчет контрольной суммы строки по алгоритму CRC32 методами встроенного языка платформы "1С:Предприятие" (версии ранее 8.3)
- Своя операция в закрытии месяца? Легко!
- Скорость сложения строк большой длины в 1С разными методами (конкатенация строк)
- Добавление строк в регистрации обязательств по договорам с разными ИФО. БГУ 2.0
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Полный такой:
еще вопрос: пробывал код вставить с помощью теков code, как сделать чтоб было выравнивание и цветовая посветка?
тз = СоздатьОбъект("ТаблицаЗначений");
тз.НоваяКолонка("пайщик");
тз.НоваяКолонка("договор");
тз.НоваяКолонка("Сумма");
Док = СоздатьОбъект("Операция");
Док.ВыбратьОперации(ВыбНачПериода, ВыбКонПериода);
Пока ДОк.ПолучитьОперацию()=1 Цикл
Если доК.Документ.вид()<>"Операция" Тогда
продолжить;
КонецЕсли;
Док.ВыбратьПроводки();
Пока док.ПолучитьПроводку()=1 Цикл
Если (Док.Дебет.Счет = СчетПОкОду("76.7")) и (Док.Кредит.Счет = СчетПОкОду("76.10")) Тогда
тз.НоваяСтрока();
Тз.пайщик = Док.Дебет.Субконто(1);
Тз.договор = Док.Дебет.Субконто(2);
Тз.сумма = Док.Сумма;
КонецЕсли;
КонецЦикла;
тз.выбратьСТроки();
Пока Тз.ПолучитьСтроку()=1 Цикл
док.НоваяПроводка();
док.Дебет.Счет = СчетПОкОду("76.7");
док.Дебет.Субконто(1, Тз.пайщик);
док.Дебет.Субконто(2, Тз.договор);
док.Кредит.Счет = СчетПОкОду("86.1.2");
док.Кредит.Субконто(1, Тз.пайщик);
док.Сумма = Тз.Сумма * 0.6;
док.ЗаписатьПроводки();
док.НоваяПроводка();
док.Дебет.Счет = СчетПОкОду("76.7");
док.Дебет.Субконто(1, Тз.пайщик);
док.Дебет.Субконто(2, Тз.договор);
док.Кредит.Счет = СчетПОкОду("91.2");
док.Кредит.Субконто(1, ПДР);
док.Сумма = Тз.Сумма * 0.4;
док.ЗаписатьПроводки();
КонецЦикла;
тз.УдалитьСтроки();
КонецЦикла;
Показатьеще вопрос: пробывал код вставить с помощью теков code, как сделать чтоб было выравнивание и цветовая посветка?
ЗаписатьПроводки();
Синтаксис:
ЗаписатьПроводки()
Назначение:
Предназначен для записи в информационную базу уже добавленных и заполненных проводок операции.
Замечание:
Метод может использоваться только для атрибута ''Операция'' документа в момент проведения (в процедуре ОбработкаПроведения). При этом происходит обновление бухгалтерских итогов. Это позволяет при проведении документа обращаться к бухгалтерским итогам, уже измененным проводками, записанными этим документом. После выполнения метода ЗаписатьПроводки() и до окончания процедуры ОбработкаПроведение уже невозможно изменять или удалять проводки, добавленные до вызова этого метода.
Данный метод имеет смысл использовать, только в том случае, если существует необходимость обращения к итогам, измененным проводками записываемой операции. При записи сложной проводки, если у главной корреспонденции сложной проводки не указана сумма (равна 0), то она автоматически вычисляется на основании подчиненных корреспонденций.
может лучше операция.записать()? :-)
Синтаксис:
ЗаписатьПроводки()
Назначение:
Предназначен для записи в информационную базу уже добавленных и заполненных проводок операции.
Замечание:
Метод может использоваться только для атрибута ''Операция'' документа в момент проведения (в процедуре ОбработкаПроведения). При этом происходит обновление бухгалтерских итогов. Это позволяет при проведении документа обращаться к бухгалтерским итогам, уже измененным проводками, записанными этим документом. После выполнения метода ЗаписатьПроводки() и до окончания процедуры ОбработкаПроведение уже невозможно изменять или удалять проводки, добавленные до вызова этого метода.
Данный метод имеет смысл использовать, только в том случае, если существует необходимость обращения к итогам, измененным проводками записываемой операции. При записи сложной проводки, если у главной корреспонденции сложной проводки не указана сумма (равна 0), то она автоматически вычисляется на основании подчиненных корреспонденций.
может лучше операция.записать()? :-)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот