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

18.12.15

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

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

Скачать исходный код

Наименование Файл Версия Размер
ПоискПоTecDoc
.epf 117,86Kb
51
.epf 1 117,86Kb 51 Скачать

Реализацию задачи по поиску аналогов разбиваем на 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

См. также

Перенос данных из Парус 8 в ЗГУ 3

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

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

84000 руб.

19.08.2020    22620    19    1    

22

Перенос данных из Парус 10 в ЗГУ ред.3

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

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

60000 руб.

05.10.2022    9306    9    8    

11

Экстрактор данных 1С в BI - выгрузка данных из 1С в BI-аналитику

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

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

15.11.2022    13651    12    SQV0    47    

29

Перенос данных из Парус 7.хх в ЗГУ ред.3

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

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

24000 руб.

24.04.2017    48836    97    163    

86

Перенос данных из Парус 10 (Торнадо) в ЗГУ ред.3 через Excel

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

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

24000 руб.

16.11.2018    30082    20    31    

21

Загрузка в БГУ из УРМ "Криста"

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

Обработки для загрузки данных из УРМ "Криста" в бухгалтерию государственного учреждения редакция 2.0. Есть Демо доступ на вкладке Бесплатные файлы на 1 месяц со дня получения демонстрационного ключа регистрации. Поддерживает ПО "Web-исполнение" от НПО "Криста".

4800 руб.

19.06.2013    38499    136    90    

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

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

Целью публикации является описание реализации взаимодействия, и сама обработка является не более чем примером где реализован механизм описанный в статье.
4. Ivan48 5 02.07.16 00:07 Сейчас в теме
У меня пишет "ошибка формата потока". Может в старой версии открываю, или файл битый? У Вас в какой версии работает?
5. 6есик 52 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есик 52 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есик 52 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 ?
Оставьте свое сообщение