Доступ к МедКу через объекты

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 26 січня 2013, 15:58

В 112 будут исправлены прошлые ошибки, почитайте описание. Также обновил Инструкцию по СОМ-объектам.
Советую перед началом работы ("ПриОткрытии", например, или при нажатии на кнопку "Передать" (или др)) добавить проверку на версию установленного Медка -не ниже 112. См. пример в третьей версии Инструкции.

vademchuk
Повідомлень: 79
З нами з: 15 липня 2012, 01:01

Re: Доступ к МедКу через объекты

Повідомлення vademchuk » 05 лютого 2013, 13:10

Перестало работать - App.GetCurrEdrpou() ......
Почему? Метод не удалили случайно ?

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 05 лютого 2013, 13:17

Работает. толкь очт опроверил. Можно посмотерть код вызова?

vademchuk
Повідомлень: 79
З нами з: 15 липня 2012, 01:01

Re: Доступ к МедКу через объекты

Повідомлення vademchuk » 05 лютого 2013, 13:20

Попытка
App=Новый COMОбъект ("MEDOC.ZApplication");
//Возврат Арр;
Исключение
#Если Клиент Тогда
Сообщить("Приложение M.E.DOC не запущено !");
#КонецЕсли
Возврат Неопределено;
КонецПопытки;

CurrOKPO = App.GetCurrEdrpou();



Итог:
{Обработка.ЗагрузкаНалоговыхНакладных.МодульОбъекта(62)}: Ошибка при вызове метода контекста (GetCurrEdrpou)

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 05 лютого 2013, 13:33

Странно. У меня работает. Версия 117 ? 1С 8.2?

vademchuk
Повідомлень: 79
З нами з: 15 липня 2012, 01:01

Re: Доступ к МедКу через объекты

Повідомлення vademchuk » 05 лютого 2013, 13:39

Да 117.

Со стороны 1С изменений не вносилось точно.

И две недели назад все работало.

Сейчас другие методы работают ( по крайней мере App.DocumentsDataSet ). Странно.

Попробуем перезагрузиться.

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 05 лютого 2013, 13:43

См. личку.

JojIG
Повідомлень: 318
З нами з: 29 січня 2013, 11:14

Re: Доступ к МедКу через объекты

Повідомлення JojIG » 12 лютого 2013, 14:39

На 64-битных системах работает ?

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 12 лютого 2013, 14:50

небыло возможности проверить, но технолоия СОМ-объектов к разрядности ОСи не должны быть привязана, по идее.

JojIG
Повідомлень: 318
З нами з: 29 січня 2013, 11:14

Re: Доступ к МедКу через объекты

Повідомлення JojIG » 12 лютого 2013, 14:56

Тогда беру "Помощь зала"

{Отчет.МедоваяСтыковкаС1С.Форма.Форма(755)}: Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован
App = Новый COMОбъект("MEDOC.ZApplication");
по причине:
Класс не зарегистрирован

Подсказывают что проблема в отсутствии... "прямой совместимости" в работе 64-битных систем и 32-битных библиотек.
Как вариант - comcntr.dll
Или не туда я смотрю ?

ssv.box
Повідомлень: 44
З нами з: 21 вересня 2011, 09:10

Re: Доступ к МедКу через объекты

Повідомлення ssv.box » 17 березня 2013, 13:19

Версия МЕДока 127.
При импорте налоговой накладной, после выполнения Doc.Save(1), если в документе нет ошибок, в поле "N12" "Включено до ЕРПН", без участия пользователя устанавливается = "Х". Если документ содержит ошибку то все нормально, признак остается пустым.
Можно "попрыгать с бубном"

Doc.Save(1); // записали документ и выполнили проверку

rsMain = Doc.DataSets(); //получили доступ к шапке документа
rsMain.Edit(); //редактируем
rsMain.Fields.Item("N12").Value = 0; //принудительно подавляем поле "Включено до ЕРПН"
Doc.Save(0); //сохраняем без пересчета

но все-таки не хотелось-бы.

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 17 березня 2013, 13:52

Если (ВыбДок.ВключенаВЕдиныйРеестрНалоговыхНакладных)= Истина Тогда
rsMain.Fields.Item("N12").Value = 1;
КонецЕсли;

ssv.box
Повідомлень: 44
З нами з: 21 вересня 2011, 09:10

Re: Доступ к МедКу через объекты

Повідомлення ssv.box » 17 березня 2013, 14:17

Вообще-то более логично не устанавливать признак "Включено в ЕРНН" в самом МЕДоке, пока документ не зарегистрирован "физически". Очевидно, мы немного непонимаем друг друга.

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 17 березня 2013, 14:35

Так реализовано в 1С :) Мне тоже было интересно почему они эту галочку решили включить в печатную форму НН.
Задача - перенести из 1С в Медок 1:1 ? Или другая?

ssv.box
Повідомлень: 44
З нами з: 21 вересня 2011, 09:10

Re: Доступ к МедКу через объекты

Повідомлення ssv.box » 17 березня 2013, 18:41

Для меня часто логика разработчиков типовых конфигураций является загадкой, но речь идет: во-первых о том как правильно перенести документ из 1с в МЕДок (при этом хотелось бы получить поведение прораммы аналогичное как при импорте через XML), во-вторых речь идет не о типовой конфигурации.
Сразу же озвучу еще один вопрос:
каким образом можно получить доступ к информации: дата отправки, регистрационный номер, дата регистрации.

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 18 березня 2013, 10:13

1) Ок. Нетиповая конфигурация. Назовем переменную поля 1С "Поле1С":
Если ЗначениеЗаполнено(поле1С) Тогда
полеМедка=СокрЛП(поле1С);
КонецЕсли;
2) Никогда непробовал.

ssv.box
Повідомлень: 44
З нами з: 21 вересня 2011, 09:10

Re: Доступ к МедКу через объекты

Повідомлення ssv.box » 18 березня 2013, 12:16

Хорошо, попробую по-другому.
Привожу фрагмент кода

.....
rsMain.Fields.Item("N12").Value = 0; //*Включен в ЕРПН - принудительно ставим "Включено в ЕРНН" = 0 (" ");

.......
Doc.Save(1); //Сохраняем и проверяем документ
........

После Doc.Save(1), если налоговая накладная прошла проверку, то N12, без участия пользователя, становится равным 1.
Вот именно это я и имел в виду.

Как выход из ситуации добавил после Doc.Save(1) такой фрагмент
Попытка

rsMain = Doc.DataSets();
rsMain.Edit();
rsMain.Fields.Item("N12").Value = 0;
Doc.Save(0);

Исключение

Сообщить("Ошибка при сбрасываем состояние документа <Включено в ЕРНН>: " + СокрЛП(ОписаниеОшибки()));
флУспешныйЭкспорт = 0;

КонецПопытки;

Неужели никто не сталкивался с такой ситуацией или всех все устраивает ??????

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 20 березня 2013, 22:24

Проявил. Передано программистам. Спасибо.

ssv.box
Повідомлень: 44
З нами з: 21 вересня 2011, 09:10

Re: Доступ к МедКу через объекты

Повідомлення ssv.box » 21 березня 2013, 09:01

Огромное спасибо !!!!! Буду очень благодарен, если получу сообщение про исправление ошибок !!!!!

lega
Повідомлень: 5
З нами з: 12 квітня 2013, 10:33

Re: Доступ к МедКу через объекты

Повідомлення lega » 12 квітня 2013, 10:44

появилась проблема после одного из последних обновлений Медка (версия 137). При выгрузке НН из 1С 8.2 самописной обработкой они попадают в Медок как правильные, но итоговые строки таблицы не заполнены. Ошибок при проверке в документе не находит, но НН возвращаются незарегистрированные. Если в открытом документе нажать F5, то итоги заполняются, в списке F5 не помогает, то есть выделить пачку и нажать F5 не дает результатов. Раньше все работало нормально. В вашей документации говорится про программу Modify, но вызов Doc.Modify(), говорит что такого метода нет. Не понимаю что значит "Заполнить глобальную переменную VBScript", возможно проблема в том что я не установил переменную DocEditedFieldName, тогда подскажите как ее установить в процедуре 1С? Спасибо!

Відповісти

Повернутись до “1C”