Еникеев Марат | Руководитель проектов 1С | ГК «Комплексная автоматизация»

«Структурно-независимые базы данных в 1С»

В докладе расскажу об идеях построения гибких (содержащих в БД структуру данных) систем на платформе 1С. Рассмотрим: - варианты развития функциональности известных подсистем БСП "Дополнительные реквизиты/сведения"; - как они соотносятся с конфигурациями "Конвертация данных (2 и 3)" и "Система проектирования прикладных решений"; - причем здесь паттерн программирования Модель-Представление-Контроллер (MVC) и расширение “Характеристики” языка запросов СКД; - по-новому посмотрим на периодические независимые регистры сведений и возможности их использования. Коснемся вопросов интеграции такого рода систем с внешними, в частности использование пакетов\фабрик XDTO, проведём аналогии с пакетом EnterpriseData (универсальный формат обмена данными). Обозначим области применения таких систем и их ограничения, в частности возможные подходы к решению проблем версионирования, производительности, обеспечения целостности данных и специфику формирования отчетов. Рассмотрим практический опыт разработки/внедрения/сопровождения подобной структурно-независимой формации на примере запатентованного продукта учета ресурсов системы здравоохранения и его механизмов интеграции с федеральным сервисом Единой Государственной Информационной Системы Здравоохранения в разрезе Федерального Регистра Медицинских Работников и других регистров. Поговорим об использовании этих идей в целях: - прототипирования информационных систем на этапе сбора/анализа требований, - построения экспертных систем поддержки принятия решений (ЭСППР) на базе описанной архитектуры.

Интеграция с программным комплексом СДЭК

Обмен - Обмен с другими системами

Выгрузка заявок в СДЭК - edostavka.ru, получение трек номера заказа, получение печатной формы квитанции к заказу.

 Интеграция написана по документации с сайта СДЭК - http://www.edostavka.ru/clients/integrator.html

Что реализовано:

1. Получение  "Списка пунктов выдачи заказов (ПВЗ)" для выбранного города (город выбирается из классификатора СДЭК, который загружен в макет обработки).

2. Формирование  "Списка заказов на доставку", при успешной выгрузке обратно приходит "трек номер" заказа (необходимо создать такой реквизит у документа "ЗаказПокупателя"), если при выгрузке были ошибки, то их можно увидеть в соответствующей колонке.

3. Формирование "Печатной формы квитанции к заказу"  по загруженным в СДЭК заказам.

Если будет востребовано данное решение, то планирую реализовать все возможности интеграции. 

25.02.16 

Добавлена обработка для "Управление торговлей 11".

1. Логин и пароль задаются в процедуре ПриСозданииНаСервере.

2. Реализован рассчет доставки по выбраным тарифам.

3. Настройки по печати выведены на форму.

4. Функционал версии для обычного приложения сохранен. 

Скачать файлы

Наименование Файл Версия Размер
ИнтеграцияСДЭК
.epf 191,70Kb
05.09.17
28
.epf 191,70Kb 28 Скачать
ИнтеграцияСДЭК_УТ11
.epf 202,93Kb
05.09.17
25
.epf 202,93Kb 25 Скачать

См. также

Комментарии
1. Павел Колабухов (kolabaister) 1 29.12.15 18:25 Сейчас в теме
А реализован ли вызов курьера?
2. Андрей Кирпичников (morik44) 17 29.12.15 21:14 Сейчас в теме
(1) kolabaister,
нет, но это реализуемо, если есть необходимость - пишите.
3. Денис хххххх (specerp) 02.01.16 20:55 Сейчас в теме
4. Андрей Кирпичников (morik44) 17 03.01.16 10:27 Сейчас в теме
(3) specerp, ну я рад, плати 10 рублей и радуйся)
belovo3000; +1 Ответить
5. Денис Нечаев (1softbiz) 1 03.01.16 18:57 Сейчас в теме
6. Михаил Чуклай (chuklay) 62 16.03.16 22:10 Сейчас в теме
Форма обработки для УТ 11.1.10.94 открывается пустой.
Прикрепленные файлы:
7. Андрей Кирпичников (morik44) 17 16.03.16 23:01 Сейчас в теме
(6) chuklay, завтра гляну, делалось на 11.2 Оставьте Вашу почту.
8. Федор Вяткин (fdrpaid) 26.05.16 12:44 Сейчас в теме
По ссылке ИнтеграцияСДЭК_УТ11 вариант обработки для толстого клиента.
На управляемых формах (например в УТ11) обработка не работает. Я оплатил именно для УТ 11.
Прикрепленные файлы:
9. Андрей Кирпичников (morik44) 17 26.05.16 13:26 Сейчас в теме
отредактировал для УТ 11.
10. qwerty qwerty (vamleshka) 31.10.16 16:28 Сейчас в теме
код закрыт для доработок?
11. Андрей Кирпичников (morik44) 17 31.10.16 17:07 Сейчас в теме
12. Андрей Кирпичников (morik44) 17 07.12.16 08:25 Сейчас в теме
Доработаю вашу конфигурации под синхронизацию с Яндекс.Маркет по программе «Заказ на Маркете». Реализовано через HTTP-сервис.

Обращайтесь в скайп: spartak-ks
13. Антон Собейко (sobeyko2008) 6 24.02.17 19:32 Сейчас в теме
У меня не открылась обработка
{ВнешняяОбработка.ОтправкаСДЭК.Форма.Форма.Форма(283)}: Ошибка при вызове метода контекста (Выполнить)
Заказы.Загрузить(Запрос.Выполнить().Выгрузить());
по причине:
{(7, 18)}: Поле не найдено "ЗаказПокупателя.ТрекНомер"
ЗаказПокупателя.<<?>>ТрекНомер КАК НомерСДЭК
14. Андрей Кирпичников (morik44) 17 26.02.17 10:52 Сейчас в теме
(13) - Читайте внимательно :
2. Формирование "Списка заказов на доставку", при успешной выгрузке обратно приходит "трек номер" заказа (необходимо создать такой реквизит у документа "ЗаказПокупателя"), если при выгрузке были ошибки, то их можно увидеть в соответствующей колонке.
15. Антон Собейко (sobeyko2008) 6 27.02.17 12:03 Сейчас в теме
(14)я скорей всего плохо понимаю логику... Но для чего используется документ заказ покупателя. Разве отправка наложенным платежом не через реализацию проводится?
16. Андрей Кирпичников (morik44) 17 27.02.17 12:10 Сейчас в теме
(15) в данной разработке требовалось для заказа. Можете подменить под реализацию, код открыт.
17. Андрей Кирпичников (morik44) 17 05.09.17 11:22 Сейчас в теме
Обновлен адрес подключения.
18. Павел Б (lame) 43 12.02.18 15:04 Сейчас в теме
Протокол у СДЭКа обновлен
в программе нет.
Скачивать или не советую.
Или скачиваете - с дальнейшей сильной допилкой ...
19. Павел Б (lame) 43 12.02.18 15:07 Сейчас в теме
для не УФ - нет заявленного механизма расчета доставки
Есть опция - отправка текущего заказа покупателя на сайте СДЭК
при этом - протокол обновлен и при текущих параметрах - работать не будет
Есть опция - получения списка - Список пунктов выдачи заказов
Есть опция - получение печатной формы заказа на бланке СДЭК ... в пдф формате ( пока не дошел до этого .. но пдф выскакивает .. пустой -но выскакивает. Проверю - отпишусь)
21. Андрей Кирпичников (morik44) 17 12.02.18 15:16 Сейчас в теме
(19) - для не УФ - нет заявленного механизма расчета доставки

Для не УФ расчета доставки заявлено не было, читайте внимательно.

По поводу протокола не в курсе, клиенты продолжают работать на

используемой версии api.
23. Павел Б (lame) 43 12.02.18 15:24 Сейчас в теме
(21)
читаю внимательно

Добавлена обработка для "Управление торговлей 11".
2. Реализован рассчет доставки по выбраным тарифам.
4. Функционал версии для обычного приложения сохранен.

Отсюда делаю вывод - что и для НЕ УФ - данная опция пристутсвует
25. Павел Б (lame) 43 12.02.18 15:27 Сейчас в теме
(21)

и да .. если лень было делать не для УФ опцию - расчет стоимости
то можно было в коде обработки не УФ выложить процедуру с УФ - закомментированную.
чтобы можно было воссоздать..
а то у вас одна стоимость работы- для УФ и не для УФ в 10 монет
при этом урезан функционал
20. Павел Б (lame) 43 12.02.18 15:13 Сейчас в теме
логика вообще не логичная .. уж пардоньте ...

Автор .. смотрите ...
есть таблица заказов. я отправляю их на сайт сдэк. он их там создал. нормально.
при повтороной отправке он не отправляет уже созданные. Тоже нормально.
Но! Печать ПДФ возможна только при первой отправке заказа.
те взять и повторно распечатать форму пдф сдэка - в уже сформированном на сдэк документе - невозможно
22. Андрей Кирпичников (morik44) 17 12.02.18 15:19 Сейчас в теме
если про УФ, то доп. реквизит должен быть у заказа;

если про не УФ, то в тексте публикации написано - (необходимо создать такой реквизит у документа "ЗаказПокупателя")
24. Павел Б (lame) 43 12.02.18 15:25 Сейчас в теме
(22)
я не про допреквизит
а про логику работы.

попробуйте в своей версии распечатать документ пдф для заказа - который УЖЕ есть на сайте сдэка.

не получится
потому что печать пдф возможна только для только созданного заказа
26. Павел Б (lame) 43 12.02.18 15:29 Сейчас в теме
и НИГДЕ не указано - что работа идет только по 2м тарифам

Список.Добавить("136 С-С","136 С-С");
Список.Добавить("137 С-Д","137 С-Д");
27. Павел Б (lame) 43 12.02.18 15:30 Сейчас в теме
такие переменные как - отправитель ФИО и отправитель Телефон - вы бы как-то закомментирвоали бы
или вынесли б в общие переменные..
28. Павел Б (lame) 43 12.02.18 15:35 Сейчас в теме
Уважаемые программисты.
Кто читает.

Итоги такие
- если руки не из ж. и есть время на прикручивание к вашей 1С - то скачивайте. У меня заработало через 1,5ч после сопоставления кода и описания протокола. Да и то ... куча полей не данном протоколе не указана. Например, геометрические размеры груза SizeA SizeB SizeC
те как наглядный вариант - работает!
29. Павел Б (lame) 43 12.02.18 15:38 Сейчас в теме
в типовой выгрузке - если скачивать - внести допреквизит и запустить
самая первая ошибка - которую присылает сервер

<?xml version="1.0" encoding="UTF-8"?><response><Order Number="000568" ErrorCode="ERR_NEED_ATTRIBUTE" Msg="Отсутствие обязательного атрибута: Attempt/Date"/><Order Msg="Добавлено заказов 0"/></response>

Как показал метод проб и ошибок
надо из запроса удалить блок
<Attempt ID="1" TimeBeg="10:00:00" TimeEnd="18:00:00"/>
т.к. тут нет параметров Date и Number
30. Павел Б (lame) 43 12.02.18 16:17 Сейчас в теме
обработка ответ от сервера - не верная ..
опять -таки, логически не верная.

суть
- вы обошли все строки таблицы на экране. сформировали 1 файл-запроса. хмл.
отправили.(например, в запросе идет добавление 6 заказов)
приходит ответ в виде 1 файла ответа, в котором перечислены статусы на все 6 заказов.

и вы - судя по всему - последний ответ из этого хмл-файла ответа пишите во все строки - в которых участвует запрос.
те если из 6 отправляемых документов 4 прошло, а 2 нет - то ВЕЗДЕ будет стоять последнее значение из массива ответа ...
ВЕЗДЕ !!!
А по факту - это не так!
32. Андрей Кирпичников (morik44) 17 12.02.18 20:24 Сейчас в теме
(30) (31) уважаемый, Вы куда-то не туда смотрите: ошибки выводятся по номеру заказа.
Выгрузка проходит корректно, без ошибок, днём были ошибки, но были связаны с нестабильной работой api СДЭК.
33. Павел Б (lame) 43 13.02.18 09:59 Сейчас в теме
я смотрю в ваш код.
вы - наверное - за одну отправку не отправляли ни разу более 1 заказа.
отправьте в своей тестовой базе 3 документа.
1 из которых с заведомо явной ошибкой в данных.
удивитесь выводимому на экран ответу.
31. Павел Б (lame) 43 12.02.18 16:31 Сейчас в теме
Вот пример ответа на отправку 3х накладных .
2 из которых с ошибкой

<?xml version="1.0" encoding="UTF-8"?><response><Order Number="00000000381" ErrorCode="ERR_NOT_FOUND_RECCITY" Msg="Отсутствуют параметры для идентификации города получателя: RecCityCode, RecCityPostCode"/><Order Number="00000000380" ErrorCode="ERR_NOT_FOUND_RECCITY" Msg="Отсутствуют параметры для идентификации города получателя: RecCityCode, RecCityPostCode"/><Order Number="00000000382" DispatchNumber="1073414865"/><Order Msg="Добавлено заказов 1"/></response>
34. Павел Б (lame) 43 13.02.18 10:02 Сейчас в теме
еще ..

то место - где вы записываете документ заказ покупателя - с внесенным номеромтрека ..
типа

ДокОб.Записать(Режимзаписи.запись)

делать правильно через

Попытка
Исключение
конецпопытки

надеюсь - объяснять не надо почему
и если записать документ не удается
то выводить информацию или в окно сообщений или в колонку - ошибка.

И как-то думать - что делать в такой
35. Павел Б (lame) 43 13.02.18 10:04 Сейчас в теме
И как-то думать - что делать в такой ситуации ..
те документ в сдэк отправлен. номер вашего заказа на на сайте уже присвоен. и у него есть этот номер.
а в базе 1С - не зафиксирован нигде ..
и при повтороной выгрузке этого документа на сайт - сдэк вернет ошибку...

Т.е. - лучший вариант - делаем регистр сведений. с 2мя параметрами
- заказ клиента
- номер трека.

все.
36. Павел Б (lame) 43 13.02.18 10:06 Сейчас в теме
или обрабатываем ситуацию - когда сдэк возвращает ошибку- что документ в системе уже зарегистрирован.
в котором есть и номер заказа 1С , и номер трека ...
37. Андрей Кирпичников (morik44) 17 13.02.18 11:41 Сейчас в теме
(36) Дак кто ж Вам мешает всё это реализовать у себя. Я не претендую на "оскар".
И хорош уже флудить. Я Вам обработку не за 10000 руб. продаю Это можно сказать "рыба", где реализованы определенные функции взаимодействия с api.

Вам уважаемый сюда - http://1softbiz.ru/integraciya-1s-i-sdek/
38. Павел Б (lame) 43 13.02.18 15:12 Сейчас в теме
ну что вы .. я флудом не занимаюсь
я описываю то - с чем придется столкнутся следующим ..
страна должна знать своих героев и их косяки и быть готовым ..
Оставьте свое сообщение