Доступ к МедКу через объекты
Re: Доступ к МедКу через объекты
В 112 будут исправлены прошлые ошибки, почитайте описание. Также обновил Инструкцию по СОМ-объектам.
Советую перед началом работы ("ПриОткрытии", например, или при нажатии на кнопку "Передать" (или др)) добавить проверку на версию установленного Медка -не ниже 112. См. пример в третьей версии Инструкции.
Советую перед началом работы ("ПриОткрытии", например, или при нажатии на кнопку "Передать" (или др)) добавить проверку на версию установленного Медка -не ниже 112. См. пример в третьей версии Инструкции.
Re: Доступ к МедКу через объекты
Перестало работать - App.GetCurrEdrpou() ......
Почему? Метод не удалили случайно ?
Почему? Метод не удалили случайно ?
Re: Доступ к МедКу через объекты
Работает. толкь очт опроверил. Можно посмотерть код вызова?
Re: Доступ к МедКу через объекты
Попытка
App=Новый COMОбъект ("MEDOC.ZApplication");
//Возврат Арр;
Исключение
#Если Клиент Тогда
Сообщить("Приложение M.E.DOC не запущено !");
#КонецЕсли
Возврат Неопределено;
КонецПопытки;
CurrOKPO = App.GetCurrEdrpou();
Итог:
{Обработка.ЗагрузкаНалоговыхНакладных.МодульОбъекта(62)}: Ошибка при вызове метода контекста (GetCurrEdrpou)
App=Новый COMОбъект ("MEDOC.ZApplication");
//Возврат Арр;
Исключение
#Если Клиент Тогда
Сообщить("Приложение M.E.DOC не запущено !");
#КонецЕсли
Возврат Неопределено;
КонецПопытки;
CurrOKPO = App.GetCurrEdrpou();
Итог:
{Обработка.ЗагрузкаНалоговыхНакладных.МодульОбъекта(62)}: Ошибка при вызове метода контекста (GetCurrEdrpou)
Re: Доступ к МедКу через объекты
Странно. У меня работает. Версия 117 ? 1С 8.2?
Re: Доступ к МедКу через объекты
Да 117.
Со стороны 1С изменений не вносилось точно.
И две недели назад все работало.
Сейчас другие методы работают ( по крайней мере App.DocumentsDataSet ). Странно.
Попробуем перезагрузиться.
Со стороны 1С изменений не вносилось точно.
И две недели назад все работало.
Сейчас другие методы работают ( по крайней мере App.DocumentsDataSet ). Странно.
Попробуем перезагрузиться.
Re: Доступ к МедКу через объекты
На 64-битных системах работает ?
Re: Доступ к МедКу через объекты
небыло возможности проверить, но технолоия СОМ-объектов к разрядности ОСи не должны быть привязана, по идее.
Re: Доступ к МедКу через объекты
Тогда беру "Помощь зала"
{Отчет.МедоваяСтыковкаС1С.Форма.Форма(755)}: Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован
App = Новый COMОбъект("MEDOC.ZApplication");
по причине:
Класс не зарегистрирован
Подсказывают что проблема в отсутствии... "прямой совместимости" в работе 64-битных систем и 32-битных библиотек.
Как вариант - comcntr.dll
Или не туда я смотрю ?
{Отчет.МедоваяСтыковкаС1С.Форма.Форма(755)}: Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован
App = Новый COMОбъект("MEDOC.ZApplication");
по причине:
Класс не зарегистрирован
Подсказывают что проблема в отсутствии... "прямой совместимости" в работе 64-битных систем и 32-битных библиотек.
Как вариант - comcntr.dll
Или не туда я смотрю ?
Re: Доступ к МедКу через объекты
Версия МЕДока 127.
При импорте налоговой накладной, после выполнения Doc.Save(1), если в документе нет ошибок, в поле "N12" "Включено до ЕРПН", без участия пользователя устанавливается = "Х". Если документ содержит ошибку то все нормально, признак остается пустым.
Можно "попрыгать с бубном"
Doc.Save(1); // записали документ и выполнили проверку
rsMain = Doc.DataSets(); //получили доступ к шапке документа
rsMain.Edit(); //редактируем
rsMain.Fields.Item("N12").Value = 0; //принудительно подавляем поле "Включено до ЕРПН"
Doc.Save(0); //сохраняем без пересчета
но все-таки не хотелось-бы.
При импорте налоговой накладной, после выполнения Doc.Save(1), если в документе нет ошибок, в поле "N12" "Включено до ЕРПН", без участия пользователя устанавливается = "Х". Если документ содержит ошибку то все нормально, признак остается пустым.
Можно "попрыгать с бубном"
Doc.Save(1); // записали документ и выполнили проверку
rsMain = Doc.DataSets(); //получили доступ к шапке документа
rsMain.Edit(); //редактируем
rsMain.Fields.Item("N12").Value = 0; //принудительно подавляем поле "Включено до ЕРПН"
Doc.Save(0); //сохраняем без пересчета
но все-таки не хотелось-бы.
Re: Доступ к МедКу через объекты
Если (ВыбДок.ВключенаВЕдиныйРеестрНалоговыхНакладных)= Истина Тогда
rsMain.Fields.Item("N12").Value = 1;
КонецЕсли;
rsMain.Fields.Item("N12").Value = 1;
КонецЕсли;
Re: Доступ к МедКу через объекты
Вообще-то более логично не устанавливать признак "Включено в ЕРНН" в самом МЕДоке, пока документ не зарегистрирован "физически". Очевидно, мы немного непонимаем друг друга.
Re: Доступ к МедКу через объекты
Так реализовано в 1С Мне тоже было интересно почему они эту галочку решили включить в печатную форму НН.
Задача - перенести из 1С в Медок 1:1 ? Или другая?
Задача - перенести из 1С в Медок 1:1 ? Или другая?
Re: Доступ к МедКу через объекты
Для меня часто логика разработчиков типовых конфигураций является загадкой, но речь идет: во-первых о том как правильно перенести документ из 1с в МЕДок (при этом хотелось бы получить поведение прораммы аналогичное как при импорте через XML), во-вторых речь идет не о типовой конфигурации.
Сразу же озвучу еще один вопрос:
каким образом можно получить доступ к информации: дата отправки, регистрационный номер, дата регистрации.
Сразу же озвучу еще один вопрос:
каким образом можно получить доступ к информации: дата отправки, регистрационный номер, дата регистрации.
Re: Доступ к МедКу через объекты
1) Ок. Нетиповая конфигурация. Назовем переменную поля 1С "Поле1С":
Если ЗначениеЗаполнено(поле1С) Тогда
полеМедка=СокрЛП(поле1С);
КонецЕсли;
2) Никогда непробовал.
Если ЗначениеЗаполнено(поле1С) Тогда
полеМедка=СокрЛП(поле1С);
КонецЕсли;
2) Никогда непробовал.
Re: Доступ к МедКу через объекты
Хорошо, попробую по-другому.
Привожу фрагмент кода
.....
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;
КонецПопытки;
Неужели никто не сталкивался с такой ситуацией или всех все устраивает ??????
Привожу фрагмент кода
.....
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: Доступ к МедКу через объекты
Огромное спасибо !!!!! Буду очень благодарен, если получу сообщение про исправление ошибок !!!!!
Re: Доступ к МедКу через объекты
появилась проблема после одного из последних обновлений Медка (версия 137). При выгрузке НН из 1С 8.2 самописной обработкой они попадают в Медок как правильные, но итоговые строки таблицы не заполнены. Ошибок при проверке в документе не находит, но НН возвращаются незарегистрированные. Если в открытом документе нажать F5, то итоги заполняются, в списке F5 не помогает, то есть выделить пачку и нажать F5 не дает результатов. Раньше все работало нормально. В вашей документации говорится про программу Modify, но вызов Doc.Modify(), говорит что такого метода нет. Не понимаю что значит "Заполнить глобальную переменную VBScript", возможно проблема в том что я не установил переменную DocEditedFieldName, тогда подскажите как ее установить в процедуре 1С? Спасибо!