Конвертация данных. Изменение регистров документа после обмена. #761152


#0 by jmaretti
Добрый день! Произвожу обмен между розницей и бухгалтерией на платформе 8.3 через правила обмена. В правилах конвертации документа по данным источника выполняю некий запрос, делаю подмену данных в табличной части конвертируемого документа. Например, меняю услугу на товар.   Хочу получить типовые движения документа в приемнике с подменными данными и сделать корректировку регистров в этом документе. Например, добавить пару проводок. Только для срок где менялась услуга на товар. В каком обработчике лучше всего проделать эту операцию, если информация о том для каких строк табличной части документа надо делать корректировку регистров известна только в обработчике ПКО. ПКО "После загрузки" еще не имеет загруженного объекта. Обработчик "После загрузки данных"  тоже самое. Подскажите где "рыть". Спасибо
#1 by ДаЛадно
запиши и будет иметь
#2 by Cyberhawk
"ПКО "После загрузки" еще не имеет загруженного объекта" // Ошибаешься
#3 by jmaretti
Я говорю о том, что написано в хелпе по обоим обработчикам, а там написано что: Обработчики ПКО "После загрузки" это - событие выполняется после прочтения и установки атрибутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта. Обработчики "Конвертация" После загрузки объекта - это По сути и назначению это тот же обработчик что и "После загрузки объекта" в правиле конвертации объектов, но определенный на глобальном уровне - то есть вызываемый для всех правил конвертации объектов. Пробовал в каждом:  сперва проводил документ. Потом читал движения. После этого устанавливал режим "РучнаяКорректировка". Далее просто для проверки удалял движения через набор записей. И ничего не происходило.
#4 by Гёдза
ты движения переносишь или нет?
#5 by jmaretti
Движения не переношу.  Конвертирую "Отчет о розничных продажах" из розницы в такой же документ в бухгалтерии. В ПКО меняю в этом документе услуги на товары.  Хочу чтобы бухгалтерия сделала свои типовые движения по бух учету для этого документа и затем поменять их, для тех товаров, которые были заменены. Сделать это хочу в момент загрузки объекта в базу приемник. Но информация о том какие строки были в документе заменены, знаю только в обработчике ПКО.
#6 by MUXACb
Если в приемнике нужно провести измененный загружаемый документ то в ПКО ПередВыгрузкой поставьте РежимЗаписи = "Проведение";
#7 by Гёдза
если записываешь в обработчике, то желательно отключать последующую запись в конвертации
#8 by jmaretti
Спасибо. Буду пробовать с этой информацией.
#9 by Гёдза
а движения как менять?
#10 by Гёдза
как нужно. 1. Провести 2. изменить движения через набор 3. записать набор 4. сбросить флаг модифицированности
#11 by Гёдза
если галку хочешь ставить, то добавь установки галки запись документа  в режиме обмена данными
#12 by jmaretti
Добрый день! Есть такой код в ПКО Вопрос, этот код не работает в обработчике ПКО ПриЗагрузке или ПослеЗагрузке.  Так как оказывается синхронизация выполняется на тонком клиенте, а там недоступен объект "РегистрыБухгалтерии". Есть ли вариант заставить это работать?
#13 by jmaretti
Добрый день! Есть такой код в ПКО Вопрос, этот код не работает в обработчике ПКО ПриЗагрузке или ПослеЗагрузке.  Так как оказывается синхронизация выполняется на тонком клиенте, а там недоступен объект "РегистрыБухгалтерии". Есть ли вариант заставить это работать?
#14 by МимохожийОднако
Не надо диктовать бухгалтерии, какие ей нужны проводки. Достаточно правильно заполнить документ и правильно настроить регистр сведений для счетов с номенклатурой.
#15 by jmaretti
Уважаемый! Диктовать не надо, это когда все делается по уму. А когда выгружается из Розницы"Оптика" в Бухгалтерию не то, что нужно, прости за выражение, диктовать увы приходится.   По конкретному вопросу есть варианты ответов? А я уже решу, диктовать или нет. Спасибо.
#16 by Cyberhawk
Картинку, где видно, что "этот код не работает", в студию
#17 by jmaretti
Cyberhawk как я вам это покажу? У меня по всем обработчикам распиханы "сообщить" для простой проверки, попал в нужный код или нет. Так вот в указанный код я не попадаю. Банальная проверка.
#18 by Cyberhawk
Как ты отличаешь непопадание в код от невыполнения процедуры-обработчика целиком?
#19 by jmaretti
Вот код обработчика "После загрузки объекта" Сообщить("--- После загрузки объектов ---"); Если Объект.Проведен Тогда          Сообщить("Проверка наличия проводок!!!");        Все сообщить отрабатывают, кроме "Есть проводки!!!". Проводки есть, их не может не быть.
#20 by Cyberhawk
"Проводки есть" // Где? Что требуется сделать-то?
#21 by jmaretti
Постановка задачи. В момент обмена данными между конфигурацией “Розница: Оптика”  в  “Бухгалтерию”  происходит обмен документом "отчет о розничных продажах". Обмен происходит как надо по типовым правилам . Но есть момент.  В рознице как таковой по правилам учета , не существует понятия предоплаты от клиента. Но Рарус в конфигурации «Розница:Оптика» сделал возможность учитывать предоплату через заранее указанную пользователем услугу, например: "Оптика предоплата". Соответственно в чеках ККМ, а далее и в документе "отчет о розничных продажах"  участвует именно услуга "Оптика предоплата" ,вместо товаров, за которые клиент внес предоплату.   При выгрузке в бухгалтерию, мало того, что бухгалтер не знает какой именно товар был предоплачен, так еще и не имеет проводок ему необходимых по счету  62.02 «Авансы полученные» от клиента. Заказ в оптике свой, отличный от типовой розницы. Он не выгружается в бухгалтерию. Требуется сделать замену в бухгалтерии не изменяя конфигурацию,  услуги  «оптика предоплата» на соответствующий товар, который можно вытянуть только из заказа в Рознице:Оптика (заказ в бухгалтерию не выгружается). И заменить проводки, которые документ «отчет о розничных продажах» сделает в бухгалтерии для услуги «оптика предоплата» Сумма товара например 2000 рублей. Предоплата на 1000 рублей. Будут проводки   (с указанием услуги) дт 50.01    - кт 90.01.1   сумма     1000     руб.     -  (оптика предоплата)   через кассу Заменить  на   (с указанием товара) дт 90.02.1 - кт 41.01         сумма     500 руб.  (себестоимость   товара) дт 50.01    - кт  62.02        сумма    1000     руб.   дт 62.01     - кт  90.01.1    сумма    1000     руб.   Далее в конфигурации появится еще один чек ККМ  с услугой «Оптика доплата» И снова выгрузится «отчет о розничных продажах с услугой «Оптика доплата». Ее тоже надо подменить на реальный товар с указанием суммы доплаты уже по счету  62.01. Не спрашивайте, зачем это нужно бухгалтеру. Вот нужно и все.
#22 by jmaretti
Собственно это я и делаю. Беру "отчет о розничных продажах". Вижу что там есть услуги "предоплата" или "доплата". Ищу нужные мне чеки и выхожу на заказ. Получаю список товаров. Делаю замену услуг на товары. Теперь хочу изменить проводки. Именно замену проводок и не могу сделать через правила обмена. Так как поменять счета учета в документе не получится. Надо править движения.
#23 by jmaretti
По этому пытаюсь хотя бы прочитать движения проведенного документа, только что выгруженного в бухгалтерию кодом Если Объект.Проведен Тогда          Сообщить("Проверка наличия проводок!!!");        в ПКО: После загрузки И не вижу сообщения "Есть проводки!!!" из обработчика ПКО:  После загрузки  в момент выполнения обмена. Из чего делаю предположение, что РегистрыБухгалтерии.Хозрасчетный не доступен в тонком клиенте.
#24 by jmaretti
Всем спасибо. Проблему с чтением проводок решил. Если кто-то сможет подсказать, каким образом еще можно учесть в данной постановке задачи учет предоплаты по реальным товарам без изменения конфы бухгалтерии. Буду благодарен.
#25 by Cyberhawk
"Проблему с чтением проводок решил" // Сдается мне, что твое решение работает только начиная со второй загрузки каждого объекта...
#26 by jmaretti
Не думаю.  Так как если объекта в базе нет, я его принудительно записываю и провожу, чтобы получить типовые проводки. Прочитать проводки прочитал, а вот изменить не могу. Если Объект.Проведен Тогда      У проведенного документа в бухгалтерии появляется признак "ручной корректировки", но в проводках пустота, ничего нет.
#27 by Cyberhawk
1. Смотри в код, выполняемый после загрузки объекта (в обработке загрузки) 2. Код по модификации движений тоже показать надобно
#28 by jmaretti
Код обработчика "после загрузки объекта"
#29 by jmaretti
Код замены проводок чисто для проверки ( замена 50.1 на 50.02), чтобы увидеть что смог хоть что-то поменять:
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С