|   |   | 
| 
 | программное изменение табличной части при записи документа | ☑ | ||
|---|---|---|---|---|
| 0
    
        almaz102 05.02.18✎ 22:56 | 
        Добрый вечер! Подскажите пожалуйста как мне правильно реализовать?
 Есть обработка мобильное приложение в котором менеджер формирует заказ с планшета и выгружает в 1с, после выгрузки в 1с создается документ заказ и записывается. Мне нужно именно при записи документа перезаполнить цены табличной части по определенному условию в моем случаи по виду цен который указан в договоре. Я прикрутил код в процедуру ПередЗаписью() в модуле объекта, когда документ падает в 1с он не перезаполняется, такие же цены как заполнил менеджер, но если этот созданный документ я еще раз запишу он перезаполняет. Может мне использовать другой обработчик событий? кто сталкивался с такой проблемой? | |||
| 1
    
        Мимохожий Однако 05.02.18✎ 23:17 | 
        Проблема в том, что не надо это делать при записи или проведении.     | |||
| 2
    
        romix 06.02.18✎ 00:32 | 
        Если нужно в запросе перед записью видеть содержимое табличной части документа, я использую запрос по таблице значений (в нее сначала эту тч надо выгрузить).
 По-моему, так правильнее всего и проверять еще не записанный документ, и дозаполнять его запросом. Другие способы по-моему не всегда подходят - всякие переборы объекта в цикле обернутся запросами в цикле. Два раза записывать тоже как-то не то, что надо. А запрос по тз позволяет произвольно усложнять и при этом делать всё правильно. | |||
| 3
    
        catena 06.02.18✎ 05:59 | 
        (0)Обычно помощь можно получить быстрее, если не надеяться на телепатов и выложить свой код.
 А еще нужно помнить, что в процедуре "ПередЗаписью" есть доступ к двум вариантам объекта: к бывшему и к будущему. Если обращаться к реквизитам через Ссылку или в запросе - это бывший. Естественно, что у нового документа бывшие значения будут пустыми. | |||
| 4
    
        Повелитель 06.02.18✎ 06:03 | 
        (0) Это нужно делать не при записи.
 А в момент когда заказ приходит с КПК, в том месте, где создается документ. | |||
| 5
    
        Рэйв 06.02.18✎ 06:13 | 
        Еще есть вариант, что из КПК объект записывается с ОбменДанными.Загрузка=Истина и если в ПередЗаписью это обрабатывается,то все проверки и заполнения не работают.     | |||
| 6
    
        RomaH naïve 06.02.18✎ 07:37 | 
        +(5)
 Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; есть такое? | |||
| 7
    
        RomaH naïve 06.02.18✎ 07:38 | 
        если нет - то это косяк - оно должно быть
 см (4) | |||
| 8
    
        Сияющий в темноте 06.02.18✎ 10:20 | 
        Проще вписать все,что нужно в обработку создания,при записи документа так делать нехорошо,т.к.пользователь может интерактивно создать документ,а потом записать,  после этого все косяки будут списываться на 1с сама все перезаписала     | |||
| 9
    
        FIXXXL 06.02.18✎ 11:04 | 
        ПередЗаписью() надеюсь не в модуле Формы?     | |||
| 10
    
        romix 06.02.18✎ 12:35 | 
        Пример запроса по таблице значений (чтобы видеть до записи документа содержимое табличной части в запросе; изменение табличной части в цикле по результатам запроса):
 
Этот образец может использоваться для контроля правильности заполнения документа или для дозаполнения документа по результатам запроса, пока он еще не записан. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |