Имя: Пароль:
1C
1С v8
1С-ЭДО. Программно созданный документ не попадает в обработку ИнтерфейсДокументовЭДО
, ,
0 PolinaPykh
 
21.11.22
10:57
Есть внешняя обработка, которая программно создает счета на оплату и документы на реализацию (акты), при этом акты попадают в список исходящие-создание в ИнтерфейсеДокументовЭДО, а счета на оплату - нет. И в списке счетов не отражается состояние ЭДО. //это какой-то суслик из ДМБ "ту его не видишь, а он есть"
Если создавать документы собственно через форму счета/акта - все ок.
Сталкивались ли вы с такой проблеммой?
А если нет - откуда можно попробовать ее "размотать"?
Хэлп ми самбади!
1 mikecool
 
21.11.22
11:03
сравни не программный и программный счет по реквизитам, думай
2 PolinaPykh
 
21.11.22
14:31
(1) Вот вроде в реквизитах проблем не вижу. СостояниеЭДО вызывается послеЗаписиНаСервере, т.е. когда программно созданный документ записан, должен выполняться код в процедуре ПослеЗаписиНаСервере в СчетеНаОплатуПокупателю (или в в любом документе, в принципе), я правильно понимаю?
Или меня уже теоретическая база подводит?
3 mikecool
 
21.11.22
15:05
(2) а чего теорией мучиться? вперед, в практику, в отладку
4 PolinaPykh
 
21.11.22
15:07
(3) и то верно, хотя отладка внешней обработки отдельный квест в который я еще ни разу не пробовала
5 Garykom
 
гуру
21.11.22
15:11
(0) Вероятно внешняя обработка неправильно записывает счета и не вызывает требуемых обработчиков

Надо там
ДокументСчет.Заполнить(Неопределено);
И запись делать без "ОбменДанными.Загрузка = Истина"
6 Garykom
 
гуру
21.11.22
15:12
(5)+ Короче для 1С-ЭДО надо чтобы записи в РС для доков делались
7 PolinaPykh
 
21.11.22
15:16
(5) Попробую. Спасибо
8 Garykom
 
гуру
21.11.22
15:23
(7) учти что Заполнить(Неопределено) должно быть в определенном месте относительно установки реквизитов дока
Или можно создать Структуру и на основании ее сделать заполнение
9 PolinaPykh
 
21.11.22
15:31
(8) Идея со структурой мне нравится больше)
10 PolinaPykh
 
22.11.22
16:50
(6) А вопрос: вот такой код выглядит приемлемо для заполнения РС?
//запись в регистр сведений СостоянияПоОбъектамУчетаЭДО
  Если ЭДО Тогда
    НоваяЗапись = РегистрыСведений.СостоянияПоОбъектамУчетаЭДО.СоздатьМенеджерЗаписи();
    НоваяЗапись.СсылкаНаОбъект = НовыйДок.Ссылка;
    НоваяЗапись.СостояниеЭДО = Перечисления.СостоянияДокументовЭДО.НеНачат;
    НоваяЗапись.Вид = "Счет на оплату";
    НоваяЗапись.Контрагент = НовыйДок.Контрагент;
    НоваяЗапись.Организация = НовыйДок.Организация;
    НоваяЗапись.Номер = НовыйДок.Номер;
    НоваяЗапись.СуммаДокумента = НовыйДок.СуммаДокумента;
    НоваяЗапись.Записать()
  КонецЕсли;    
//конец записи в регистр

Или лучше с набором?

Мне, кажись, опыта не хватает(
11 Garykom
 
гуру
22.11.22
17:01
(10) Отладка - Замер производительности
Затем в режиме Предприятия делаешь запись дока и изучаешь код
Там поищи по "СостоянияПоОбъектамУчетаЭДО"
12 PolinaPykh
 
22.11.22
17:02
(11) Данке)
13 Garykom
 
гуру
22.11.22
17:02
(11)+ Подозреваю что не надо вручную в РС писать, уже есть готовые процедуры/функции
14 Ногаминебить
 
22.11.22
17:09
Есть же функция вроде готовая для установки состояния. Если БП 3.0 - то где-нить в ЭлектронныеДокументыЭДО можно стырить.
15 PolinaPykh
 
22.11.22
17:10
(13) Точно есть. Там целый модуль есть ИнтеграцияЭДО, в котором регистр пишется. Но из типового документа до него доходит "курсор" при отладке через 9 других модулей, причем первый шаг вызывается из модуля формы. И я не могу понять надо ли мне проходить этот тяжкий путь, а главное - никогда не обращалась к общим модулям из внешней обработки (но это фигня - наверняка где-то в книжках это описано)
16 PolinaPykh
 
22.11.22
17:11
(14) попробую, мне кажется я уже мудрю в чудовищно "нетуда".
AdBlock убивает бесплатный контент. 1Сергей