Преобразование одного документа в несколько
Добрый день.
Существует не типовая БД в которой есть документ Выплата ЗП через кассу одновременно двигает и взаиморасчеты и регистр денежные средства. Необходимо данное перенести в типовые документы Ведомость на выплату ЗП через кассу и несколько РКО (в зависимости от Статьи ДДС).
Более подробно
В источнике
Выплата ЗП
Реквизиты ТЧ
- ФизЛицо
- Сотрудник
- Сумма
- Статья ДДС
В приемнике
Ведомость
Куча ТЧ (Все они заполняются, все ок)
Несколько РКО (В зависимости от статьи ДДС)
Что сделано:
В ПКО в обработке после выгрузке сделан запрос по данным и циклом идет выгрузка по правилам.
Основная проблема, что при загрузке проведение РКО происходит раньше чем Ведомости, соответственно, вываливатется ошибка проведения РКО в Предупреждениях при синхронизации.
Подскажите как обойти данную проблему.
Существует не типовая БД в которой есть документ Выплата ЗП через кассу одновременно двигает и взаиморасчеты и регистр денежные средства. Необходимо данное перенести в типовые документы Ведомость на выплату ЗП через кассу и несколько РКО (в зависимости от Статьи ДДС).
Более подробно
В источнике
Выплата ЗП
Реквизиты ТЧ
- ФизЛицо
- Сотрудник
- Сумма
- Статья ДДС
В приемнике
Ведомость
Куча ТЧ (Все они заполняются, все ок)
Несколько РКО (В зависимости от статьи ДДС)
Что сделано:
В ПКО в обработке после выгрузке сделан запрос по данным и циклом идет выгрузка по правилам.
Основная проблема, что при загрузке проведение РКО происходит раньше чем Ведомости, соответственно, вываливатется ошибка проведения РКО в Предупреждениях при синхронизации.
Подскажите как обойти данную проблему.
По теме из базы знаний
- Перенос документов из УТ 10.3 в Бухгалтерию 3.0
- Концепция автоматизации многопрофильного Холдинга в системе АУБ на платформе 1С
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Загрузка чеков из ФНС в документы 1С:БП, УНФ, ERP, КА и УТ
- Робот-загрузчик и архив документов. Распознавание/загрузка сканов документов в 1С8(7.7), архив сканированных документов.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) glime, я бы в параметрах конвертации сделал параметр(ну скажем "ТАблицаРКО") с типом таблица значений и с признаком "использовать при загрузке".
В обработчике "Перед загрузкой данных" конвертации:
/////
В обработчике "Перед загрузкой" РКО:
// Так мы создадим документ РКО и просто запишем.
В обработчике "После загрузки" РКО:
//Сохраним все РКО в таблице
В обработчике "Перед загрузкой" Ведомость:
В обработчике "После загрузки" Ведомость:
в цикле пробегаем Параметры.ТаблицаРКО и проводим все РКО
В обработчике "Перед загрузкой данных" конвертации:
Если НЕ ТИпЗнч(Параметры.ТаблицаРКО) = ТИп("ТаблицаЗначений") Тогда
Параметры.ТаблицаРКО = Новый ТаблицаЗначений;
КонецЕСли;
Параметры.ТаблицаРКО.Колонки.Добавить("РКО");
/////
В обработчике "Перед загрузкой" РКО:
РежимЗаписи = "Запись";
В обработчике "После загрузки" РКО:
//Сохраним все РКО в таблице
НоваяСтрока = Параметры.ТаблицаРКО.Добавить();
НоваяСтрока.РКО = Объект.Ссылка;
В обработчике "Перед загрузкой" Ведомость:
РежимЗаписи = "Проведение";
В обработчике "После загрузки" Ведомость:
в цикле пробегаем Параметры.ТаблицаРКО и проводим все РКО
Основная проблема, что при загрузке проведение РКО происходит раньше чем Ведомости, соответственно, вываливатется ошибка проведения РКО в Предупреждениях при синхронизации.
Подскажите как обойти данную проблему.
Подскажите как обойти данную проблему.
Если делать все через план обмена, то ваши РКО упадут в список отложенных движений и при следующем обмене например проведутся как положено.
Если же нужно делать все в раз, в методе самой конвертации Перед загрузкой данных делаете что-то вроде:
Параметры.Вставить("ОбъектыОтложенногоПроведения", Новый Массив);
В ПКО документа РКО После загрузки делаете:
Объект.Записать();
Параметры.ОбъектыОтложенногоПроведения.Добавить(Объект.Ссылка);
В ПКО ведомости После загрузки:
Если Объект.Проведен Тогда
Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
КонецЕсли;
Ну и методе После загрузки данных самой конвертации проводите каждый РКО из вашего массива Параметры.ОбъектыОтложенногоПроведения.
На самом деле ответы на большинство вопросов по конвертации можно найти в стандартных правилах типовых конфигураций...
P.S. (upd 01.04.2016) Тока заметил что расписанный мною принцип выше расписали. Повторенье - мать ученья :-)
P.S. (upd 01.04.2016) Тока заметил что расписанный мною принцип выше расписали. Повторенье - мать ученья :-)
Буду краток, использую стандартный перепиленный обмен с зуп 2.5(План обмена скопировал). Раскопал стандартный код загрузки. так вот проведение идет после записи всех объектов в БД, формирование РКО перенес в ПКО ПослеВыгрузкиВФайл что дало последовательность в формируемой таблице ДокументовКПроведение как надо (Ведомость, РКО, РКО), но при разборе проведения РКО в модуле идет проверка на проведенность Ведомости, так вот данная ведомость проведена, а запрос ее не видит. Вроде как пишется отрывается и закрывается транзакция и документ уже должен быть записан, но не могу понять почему, глюк?
(17) glime, в момент загрузки может и не увидеть, для этого в ПКО ведомости после загрузки делаете Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
Ну и обратить внимание на даты, как выше написали. И Дата документа и ПериодРегистрации указанной в ведомости должны быть ранее даты РКО. Проверьте, заполняете ли вы реквизит ПериодРегистрации документа ЗарплатаКВыплатеОрганизаций.
Так же проверьте, заполняете ли вы признак ВыплаченностьЗарплаты в табличной части Зарплата вашей ведомости. Значение должно быть равно либо Перечисления.ВыплаченностьЗарплаты.Выплачено, либо Перечисления.ВыплаченностьЗарплаты.Задепонировано
Ну и обратить внимание на даты, как выше написали. И Дата документа и ПериодРегистрации указанной в ведомости должны быть ранее даты РКО. Проверьте, заполняете ли вы реквизит ПериодРегистрации документа ЗарплатаКВыплатеОрганизаций.
Так же проверьте, заполняете ли вы признак ВыплаченностьЗарплаты в табличной части Зарплата вашей ведомости. Значение должно быть равно либо Перечисления.ВыплаченностьЗарплаты.Выплачено, либо Перечисления.ВыплаченностьЗарплаты.Задепонировано
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот