TECDOC. Поиск запчастей по конструкционным номерам

18.12.15

Интеграция - Внешние источники данных

Хочу поделиться своим опытом реализации взаимодействия 1С и базы TecDoc, в надежде, что кому-то эта статья сможет сэкономить драгоценное время.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ПоискПоTecDoc
.epf 117,86Kb ver:1
52
52 Скачать (1 SM) Купить за 1 850 руб.

Реализацию задачи по поиску аналогов разбиваем на 3 части:

  1. Подключение к базе TecDoc.
  2. Формирование запросов к нужным данным из базы TecDoc.
  3. Отображение картинок запчастей и брендов из базы на форме обработки.

Первая и самая простая часть это подключение к базе, нашел довольно быстро в интернете:

Процедура ПодключитьсяTECDOC() Экспорт  
	
	Если ЗначениеНеЗаполнено(СтрокаПодключения) Тогда
		СтрокаПодключения = "Driver=Transbase ODBC TECDOC CD 2_2015;SERVER=localhost;Database=TECDOC_CD_2_2015;Uid=tecdoc;PWD=tcd_error_0;";
	КонецЕсли;
	Connection = Новый COMОбъект("ADODB.Connection");
	Connection.CommandTimeOut= 30;
	Попытка
		Connection.Open(СтрокаПодключения);
		Command = Новый COMОбъект("ADODB.Command");
		Command.ActiveConnection = Connection;
		RS =  Новый COMОбъект("ADODB.Recordset");
	Исключение
		Сообщить("Не могу подключиться к базе TECDOC !!!");
		Возврат;
	КонецПопытки;

КонецПроцедуры

Со второй частью пришлось повозиться немного дольше. Нужно было понять, к каким таблицам нужно обращаться и какие данные вытаскивать из базы. Поиск в интернете дал свои результаты – программу, с помощью которой  удалось отловить запросы TecDoc-а   (ODBC Monitor):

Дойдя до третьей части, я уже думал, что там осталось понтик работы - отобразить картинки на форме. С картинками брендов действительно все легко получилось:

ЭлементыФормы.КартинкаЛого.Картинка = Новый Картинка(Base64Значение(ВСтрокуBase64(ТД.ДанныеКартинкаЛого)));

Преобразовали из двоичных данных в картинку и вывели на форме, а вот с картинками запчастей, оказалось все намного сложнее – в двоичном виде в базе лежат картинки формата jp2 (JPEG2000), и как отобразить такую бяку - непонятно.

В итоге, как оказалось, это можно сделать даже несколькими способами:

  1. Сохранить в файл, и воспользоваться какой-нибудь утилитой для конвертирования.
  2. Найти ActiveX компонент для отображения графических изображений с поддержкой jp2.

Что первый, что второй способ подразумевает кроме самой обработки таскать еще конвертер с собой или устанавливать ActiveX компоненту (ActiveX, чтобы была бесплатной и поддерживала jp2, так и не нашел, но с демо версиями пробовал – использовать можно – но неудобно)

В итоге решил отображать такие картинки в «Поле HTML Документа» средствами HTML+JavaScript.

Добавил в обработку макет с javascript библиотекой OpenJPEG, и макет самой HTML страничкой.

Еще нюанс, чтобы сам js движок в «Поле HTML Документа» поддерживал функции  javascript библиотеки OpenJPEG, дописал в HTML тег:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

И сама процедура выглядит так:

Процедура ВывестиКартинкуВHTML(Куда,Данные)
	КодСкрипта = "var array_data = window.atob('"+стрЗаменить(ВСтрокуBase64(Данные),Символы.ПС,"'+"+Символы.ПС+"'")+"');DecodeAndDraw(base64ToArrayBuffer(array_data));";
	Страничка = СтрЗаменить(ПолучитьМакет("html").ПолучитьТекст(),"ЗаменитьНаЛибу",ПолучитьМакет("Openjpeg_js").ПолучитьТекст());
	Страничка = СтрЗаменить(Страничка,"ЗаменитьНаКод",КодСкрипта);
	Куда.УстановитьТекст(Страничка);
КонецПроцедуры

TecDoc JPEG2000 JP2

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    21719    22    49    

39

Внешние источники данных Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 7.хх учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

24.04.2017    51917    104    165    

91

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

120000 руб.

19.08.2020    25771    25    1    

27

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

05.10.2022    11305    13    8    

15

Розничная торговля Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Бухгалтерский учет 1С:Бухгалтерия 3.0 Фармацевтика, аптеки Россия Бухгалтерский учет Платные (руб)

Внешняя обработка загрузки данных из файла-выгрузки, сформированного в программе F3 TAIL версии 3.4 (и выше) или еФарма версии 2.1, в базу конфигурации 1С: Бухгалтерия предприятия 8, ред. 3.0 (базовая, ПРОФ, КОРП, ФРЕШ).

13200 руб.

19.12.2016    47813    88    105    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DC 150 19.12.15 19:18 Сейчас в теме
Обратите внимание на http://infostart.ru/public/417866/
Эта консоль появилась как раз в результате ковыряний TecDoc...=) С jp2 я разбирался при помощи этой штуки http://www.xnview.com/en/nconvert/
Это консольный графический конвертер, в общем довольно шустрый...
2. Tarlich 118 21.12.15 12:10 Сейчас в теме
Может я ошибаюсь, но как правило заказчик в
первую очередь хочет видеть есть ли у него этот товар на остатках
во вторых так же с аналогами .
тут реализовано?
3. 6есик 53 21.12.15 14:51 Сейчас в теме
(2) Tarlich, У меня немного другое ТЗ было, у заказчика уже в базе есть остатки самих ЗЧ и их аналогов, но ему нужна была возможность просматривать какие есть аналоги в базе TecDoc и возможность добавлять новые карточки зч нужных брендов себе в базу с добавлением в таблицу аналогов нужной запасной части.

Тем более ведь конфигурации для автомобильного бизнеса разнообразные то зеленая кнопка добавления карточки будет работать в конфе заказчика, а все остальное универсальное и будет работать в любой другой конфе.

Целью публикации является описание реализации взаимодействия, и сама обработка является не более чем примером где реализован механизм описанный в статье.
4. Ivan48 5 02.07.16 00:07 Сейчас в теме
У меня пишет "ошибка формата потока". Может в старой версии открываю, или файл битый? У Вас в какой версии работает?
5. 6есик 53 02.07.16 08:43 Сейчас в теме
В 1с 8.2-8.3 должно работать посмотрите по размеру файла - нормально ли он скачался ?
Ну и судя со строки подключения что в обработке это работает с TecDoc за второй квартал 15го года. С более новыми не пробовал - там много качать - так что если кто пробовал отпишитесь нормально ли работает.
6. Ivan48 5 06.07.16 22:06 Сейчас в теме
Да в 8.3 открывается, значит моя версия 8.2 старовата. Перенес все в 8.2 по кусочкам.
7. vas2005 8 20.10.16 16:35 Сейчас в теме
Доброго времени суток!
Скачал вашу обработку, но при переходе по результатам поиска выдает "ошибка сценария".
насколько я понимаю, не может отобразить картинку товара. ТОли скрипт что-то делает не то, то-ли не хватает какого-то компонента??????

Зарание спасибо за ответ!

PS.
Так же была ошибка при запуске "ошибка формата потока"
она проявляется на версии 1C 8.2.13.219 на другой 1C 8.2.19.121 все запустилось!
Для версии 1C 8.2.13.219 пришлось перенести обработку вручную и малость подпилить код
Если ЗначениеНеЗаполнено(СтрокаПодключения) Тогда
		СтрокаПодключения = "Driver=Transbase ODBC TECDOC CD 2_2015;SERVER=localhost;Database=TECDOC_CD_2_2015;Uid=tecdoc;PWD=tcd_error_0;";
	КонецЕсли;

Пришлось заменить на:
Если СтрокаПодключения=Неопределено тогда
		СтрокаПодключения = "Driver=Transbase ODBC TECDOC CD 2_2015;SERVER=localhost;Database=TECDOC_CD_2_2015;Uid=tecdoc;PWD=tcd_error_0;";
	КонецЕсли;


подобные манипуляции пришлось сделать везде где было выражение
Если ЗначениеНеЗаполнено()
Прикрепленные файлы:
8. 6есик 53 21.10.16 09:15 Сейчас в теме
Скорее всего у вас IE меньше 10 версии на компе - попробуйте поставить 10 или 11.
9. vas2005 8 21.10.16 17:09 Сейчас в теме
А если у артикула несколько картинок, как просмотреть другие..???
10. an2007 03.10.17 11:10 Сейчас в теме
Добрый день, скачал Вашу обработку.
Ошибка:
{Форма.Форма.Форма(953,13)}: Переменная не определена (АЙТЕК_Дополнительные)
Родитель = <<?>>АЙТЕК_Дополнительные.ПолучитьНастройкуСистемы("ПапкаДляАналоговИзTecDoc");
{Форма.Форма.Форма(7,7)}: Процедура или функция с указанным именем не определена (ЗначениеНеЗаполнено)
Если <<?>>ЗначениеНеЗаполнено(СтрокаПодключения) Тогда
{Форма.Форма.Форма(942,7)}: Процедура или функция с указанным именем не определена (ЗначениеНеЗаполнено)
Если <<?>>ЗначениеНеЗаполнено(Аналог) Тогда
{Форма.Форма.Форма(966,7)}: Процедура или функция с указанным именем не определена (ЗначениеНеЗаполнено)
Если <<?>>ЗначениеНеЗаполнено(Производитель) Тогда
11. 6есик 53 03.10.17 16:45 Сейчас в теме
Можете закоментировать всю процедуру - так как она расчитанна под конкретную конфу заказчика - для создания карточки зч. Остальное должно работать без привязки к конфе.
12. Gingeryel 17.11.17 08:33 Сейчас в теме
Ошибка сценария
Предполагается наличие "}"
13. vas2005 8 01.01.18 21:04 Сейчас в теме
Доброго времени суток!
Подскажите, как заставить искать по Артикулу, а не по конструкционному номеру...???
Если можно сам запрос..

Зарание спасибо.
14. user930804 08.03.18 15:21 Сейчас в теме
Будет работать с TECDOC CD 2_2016 ?
Оставьте свое сообщение