Делаю выгрузки из уТ в бп, необходимо чтобы доки проводились не по типовому механизму, а по нужным бухам счетам в том числе нетиповым.
Пишу такой код. Док оприходованиеТоваров
Объект.Записать(РежимЗаписиДокумента.Проведение);
Если ПараметрыОбъекта.Получить("ПланСчетов")="44.1.1" Тогда
Для каждого Операция Из Объект.Движения.Хозрасчетный Цикл
Операция.СубконтоДт.Склады = неопределено;
Операция.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения;
Операция.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Рекламные расходы");
КонецЦикла;
Объект.Записать(РежимЗаписиДокумента.Проведение);
Объект.РучнаяКорректировка = Истина;
Все без ошибок в отладчике проставляет счета и субконто после проведения опять съзжает на 94счет, видимо при проведении меняет. Можно ли программно получить операцию после проведения и откорректировать ее?
Пишу такой код. Док оприходованиеТоваров
Объект.Записать(РежимЗаписиДокумента.Проведение);
Если ПараметрыОбъекта.Получить("ПланСчетов")="44.1.1" Тогда
Для каждого Операция Из Объект.Движения.Хозрасчетный Цикл
Операция.СубконтоДт.Склады = неопределено;
Операция.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения;
Операция.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Рекламные расходы");
КонецЦикла;
Объект.Записать(РежимЗаписиДокумента.Проведение);
Объект.РучнаяКорректировка = Истина;
Все без ошибок в отладчике проставляет счета и субконто после проведения опять съзжает на 94счет, видимо при проведении меняет. Можно ли программно получить операцию после проведения и откорректировать ее?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) bissov, В каком месте написан указанный код? "Объект.Записать(РежимЗаписиДокумента.Проведение); " - здесь и формируются движения документа, код, указан ниже их не изменит.
Для изменения типового механизма проведения код разместите в общем модуле (лучше добавить свой) и используйте подписку на событие Обработка проведения документа в которой укажите свой обработчик из своего общего модуля.
Для изменения типового механизма проведения код разместите в общем модуле (лучше добавить свой) и используйте подписку на событие Обработка проведения документа в которой укажите свой обработчик из своего общего модуля.
Спасибо за ответ! Но я после первого проведения получаю движения документа, потом их меняю, потом снова провожу или записываю. С подпиской вроде понятно, а нельзя тупо получить операцию по этому доку после первого проведения и отредактировать ее вручную?
(3) bissov, "а нельзя тупо получить операцию по этому доку после первого проведения и отредактировать ее вручную? " - Тогда и писать ничего не надо, проводим документ, нажимаем кнопку Дт/Кт, в левом верхнем углу ставим галку Ручная корректировка и меняем всё что хочется!!! Разработчик дал такую возможность пользователю, хотя ИМХО это не есть хорошо, такими корректировками видел ТАКИЕ изменения, что вообще непонятно зачем создавался документ....проще сразу операцию вручную наколотить.
"после проведения и откорректировать ее?"
Можно
Код будет выглядеть примерно так
ПроводкиБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
ПроводкиБУ.Отбор.Регистратор.Установить(СсылкаНаДокумент);
ПроводкиБУ.Прочитать();
Если ПроводкиБУ.Количество() <> 0 Тогда
й = 0;
Пока й <= ПроводкиБУ.Количество() - 1 Цикл
Запись = ПроводкиБУ.Получить(й);
<Ну и дальше правишь запись как тебе надо>
й = й + 1;
КонецЦикла;
ПроводкиБУ.Записать();
КонецЕсли;
Ну и еще в конце не забудь указать что док. коректирован вручную, только записывай без проведения
Можно
Код будет выглядеть примерно так
ПроводкиБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
ПроводкиБУ.Отбор.Регистратор.Установить(СсылкаНаДокумент);
ПроводкиБУ.Прочитать();
Если ПроводкиБУ.Количество() <> 0 Тогда
й = 0;
Пока й <= ПроводкиБУ.Количество() - 1 Цикл
Запись = ПроводкиБУ.Получить(й);
<Ну и дальше правишь запись как тебе надо>
й = й + 1;
КонецЦикла;
ПроводкиБУ.Записать();
КонецЕсли;
Ну и еще в конце не забудь указать что док. коректирован вручную, только записывай без проведения
Млин засада все видит все пишет я уже обо субконто склад убрал
Пишет " {Форма.Форма.Форма(21)}: Ошибка при вызове метода контекста (Записать)
ПроводкиБУ.Записать();
Запись не верна! Вид субконто "Склады" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)"
Вот код, в других доках достаточно было после проводки поправить движения и они проводились как надо
ПроводкиБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
ПроводкиБУ.Отбор.Регистратор.Установить(Док);
ПроводкиБУ.Прочитать();
Если ПроводкиБУ.Количество() <> 0 Тогда
Строка = 0;
Пока Строка <= ПроводкиБУ.Количество() - 1 Цикл
Запись = ПроводкиБУ.Получить(Строка);
Запись.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения;
Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Рекламные расходы");
Запись.СубконтоДт.Склады = неопределено;
Запись.СубконтоКт.Склады = неопределено;
Строка = Строка + 1;
КонецЦикла;
ПроводкиБУ.Записать();
КонецЕсли;
Пишет " {Форма.Форма.Форма(21)}: Ошибка при вызове метода контекста (Записать)
ПроводкиБУ.Записать();
Запись не верна! Вид субконто "Склады" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)"
Вот код, в других доках достаточно было после проводки поправить движения и они проводились как надо
ПроводкиБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
ПроводкиБУ.Отбор.Регистратор.Установить(Док);
ПроводкиБУ.Прочитать();
Если ПроводкиБУ.Количество() <> 0 Тогда
Строка = 0;
Пока Строка <= ПроводкиБУ.Количество() - 1 Цикл
Запись = ПроводкиБУ.Получить(Строка);
Запись.СчетДт = ПланыСчетов.Хозрасчетный.ИздержкиОбращения;
Запись.СубконтоДт.СтатьиЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Рекламные расходы");
Запись.СубконтоДт.Склады = неопределено;
Запись.СубконтоКт.Склады = неопределено;
Строка = Строка + 1;
КонецЦикла;
ПроводкиБУ.Записать();
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот