#eqprofile #begin #description Профиль ТСД Data Mobile (файловый обмен) #name Профиль ТСД Data Mobile (файловый обмен) #code 0000000505 #command INSERT INTO speceqprofiles (CODE,ACTION_ID,ACTION_SCRIPT,F_CHECK,FARC,UPDATED,RECEIVED,EDIT_DAT) VALUES ('----------',15.00000000,'IF ( TYPE("ИНДЕКСУСТРОЙСТВА") == "U" )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ СООБЩЕНИЕ("Для работы данного профиля требуется Айтида версии 4.3.2 и выше", "Требуется обновление");/##CHR(13)##//##CHR(10)##/ RETURN false;/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ФУНКЦИЯ ДМ_СтрокаШаблона( мКодДок )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Строка шаблона DataMobile для файла задания (эталон TempLates v83)/##CHR(13)##//##CHR(10)##/ мКод = ALLTRIM( мКодДок );/##CHR(13)##//##CHR(10)##/ IF ( мКод == "001" OR мКод == "006" )/##CHR(13)##//##CHR(10)##/ RETURN "6;Поступление;ПоступлениеТоваров;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мКод == "002" OR мКод == "020" )/##CHR(13)##//##CHR(10)##/ RETURN "8;Реализация;РеализацияТоваров;0;0;0;0;0;0;1;1;2;1;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мКод == "019" )/##CHR(13)##//##CHR(10)##/ RETURN "7;Перемещение;ПеремещениеТоваров;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мКод == "050" )/##CHR(13)##//##CHR(10)##/ RETURN "4;Инвентаризация;ПересчетТоваров;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мКод == "009" )/##CHR(13)##//##CHR(10)##/ RETURN "5;Заказ;ЗаказПокупателя;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мКод == "022" )/##CHR(13)##//##CHR(10)##/ RETURN "9;Возврат;ВозвратТоваровОтПокупателя;0;0;0;0;0;0;1;1;2;1;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ RETURN "";/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ФУНКЦИЯ ДМ_СтрокаШаблонаПоИд( мИд )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Строка шаблона по номеру DataMobile: 1–3 маркировка, 4–9 — шаблоны заданий (ДМ_СтрокаШаблона), 10 — ТТН ЕГАИС/##CHR(13)##//##CHR(10)##/ IF ( мИд == 1 )/##CHR(13)##//##CHR(10)##/ RETURN "1;[М] Приемка;ПоступлениеТоваров;0;0;0;0;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 2 )/##CHR(13)##//##CHR(10)##/ RETURN "2;[М] Упаковка;СборкаТоваров;1;0;0;0;0;0;0;1;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 3 )/##CHR(13)##//##CHR(10)##/ RETURN "3;[М] В оборот;МаркировкаТоваровИСМП;1;0;0;0;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 4 )/##CHR(13)##//##CHR(10)##/ RETURN ДМ_СтрокаШаблона( "050" );/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 5 )/##CHR(13)##//##CHR(10)##/ RETURN ДМ_СтрокаШаблона( "009" );/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 6 )/##CHR(13)##//##CHR(10)##/ RETURN ДМ_СтрокаШаблона( "001" );/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 7 )/##CHR(13)##//##CHR(10)##/ RETURN ДМ_СтрокаШаблона( "019" );/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 8 )/##CHR(13)##//##CHR(10)##/ RETURN ДМ_СтрокаШаблона( "002" );/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 9 )/##CHR(13)##//##CHR(10)##/ RETURN ДМ_СтрокаШаблона( "022" );/##CHR(13)##//##CHR(10)##/ ELSE IF ( мИд == 10 )/##CHR(13)##//##CHR(10)##/ RETURN "10;[Е] ТТН;ТТНВходящаяЕГАИС;0;0;0;0;1;0;1;1;1;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;;;0;0;0;0;0;0;0;";/##CHR(13)##//##CHR(10)##/ RETURN "";/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ФУНКЦИЯ ДМ_ВыгрузитьШаблоны( мИмяФайла, мОчистка )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Файл шаблонов документов *_TempLates.dm (эталон TempLates v83) — все 10 шаблонов при каждой выгрузке./##CHR(13)##//##CHR(10)##/ // Без шаблонов ТСД не создаёт документы и не открывает задания. ИСТИНА при успехе./##CHR(13)##//##CHR(10)##/ мФайл = ФАЙЛСОЗДАТЬ( мИмяФайла );/##CHR(13)##//##CHR(10)##/ IF ( мФайл < 0 )/##CHR(13)##//##CHR(10)##/ RETURN false;/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( мФайл, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) );/##CHR(13)##//##CHR(10)##/ // Первая строка — количество строк файла без учета первой (признак очистки + шаблоны)/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( мФайл, "11" );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( мФайл, ЕСЛИ( мОчистка, "-", "+" ) );/##CHR(13)##//##CHR(10)##/ // Строки шаблонов: №;+;Ид;Имя;Тип;настройки... (нумерация с 0, как в эталоне)/##CHR(13)##//##CHR(10)##/ мИд = 1;/##CHR(13)##//##CHR(10)##/ WHILE ( мИд <= 10 )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( мФайл, ПЕРЕКОДИРОВАТЬ( ALLTRIM( STR( мИд - 1 ) ) + ";+;" + ДМ_СтрокаШаблонаПоИд( мИд ), "ANSI", "UTF-8" ) );/##CHR(13)##//##CHR(10)##/ мИд++;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( мФайл );/##CHR(13)##//##CHR(10)##/ RETURN true;/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ФУНКЦИЯ ДМ_ВыгрузитьЗадание( мКодДок, мИкДок, мИмяФайлаЗадания, мСкладОстатков, мВыгружатьОстатки )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Формирует файл задания *_Doc.dm по документу мКодДок/мИкДок. ИСТИНА при успехе./##CHR(13)##//##CHR(10)##/ // Задание — только по документам, у которых есть шаблон DataMobile (сам шаблон — в файле *_TempLates.dm)/##CHR(13)##//##CHR(10)##/ мСтрокаШаблона = ДМ_СтрокаШаблона( мКодДок );/##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( мСтрокаШаблона ) OR ПУСТО( мИкДок ) )/##CHR(13)##//##CHR(10)##/ RETURN false;/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ // Реквизиты шапки одной строкой с разделителем |/##CHR(13)##//##CHR(10)##/ мШапка = ЗАПРОС( "SELECT ''|'' + CONVERT( varchar(50), s000.rid ) + ''|'' + RTRIM( ISNULL( s000.ndok, '''' ) ) + ''|'' +/##CHR(13)##//##CHR(10)##/ CONVERT( varchar(23), s000.date, 121 ) + ''|'' +/##CHR(13)##//##CHR(10)##/ CAST( DATEDIFF( second, ''19700101'', s000.date ) AS varchar(20) ) + ''|'' +/##CHR(13)##//##CHR(10)##/ RTRIM( ISNULL( s000.client, '''' ) ) + ''|'' + RTRIM( ISNULL( c.inn, '''' ) ) + ''|'' +/##CHR(13)##//##CHR(10)##/ RTRIM( ISNULL( s000.sklad, '''' ) ) + ''|'' + RTRIM( ISNULL( s000.note, '''' ) )/##CHR(13)##//##CHR(10)##/ FROM spr000 s000/##CHR(13)##//##CHR(10)##/ LEFT JOIN sprclient c ON c.code = s000.client/##CHR(13)##//##CHR(10)##/ WHERE s000.code = ''" + мКодДок + "'' AND s000.ic = " + мИкДок );/##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( мШапка ) )/##CHR(13)##//##CHR(10)##/ RETURN false;/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ мИдЗадания = ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 1 );/##CHR(13)##//##CHR(10)##/ мНомерДок = ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 2 );/##CHR(13)##//##CHR(10)##/ мДатаДок = ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 3 );/##CHR(13)##//##CHR(10)##/ мМеткаДаты = ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 4 );/##CHR(13)##//##CHR(10)##/ мКлиент = ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 5 );/##CHR(13)##//##CHR(10)##/ мИННКлиента = ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 6 );/##CHR(13)##//##CHR(10)##/ мСклад = ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 7 );/##CHR(13)##//##CHR(10)##/ мКомментарий = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( мШапка, "|", "|", 8 ), """", "" ), CHR( 13 ), " " ), CHR( 10 ), " " ), ";", "" );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ мСкладПолучатель = "";/##CHR(13)##//##CHR(10)##/ IF ( ALLTRIM( мКодДок ) == "019" )/##CHR(13)##//##CHR(10)##/ мСкладПолучатель = ЗАПРОС( "SELECT RTRIM( ISNULL( sklad_d, '''' ) ) FROM spr019 WHERE ic = " + мИкДок );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ // Строки задания из спецификации документа/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "ДМЗаданиеСтроки" );/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode AS дмз_код,/##CHR(13)##//##CHR(10)##/ RTRIM( ISNULL( ( SELECT TOP 1 bc FROM sprnnbc WHERE nn = sprnn.nn ), '''' ) ) AS дмз_шк,/##CHR(13)##//##CHR(10)##/ spec.kolp AS дмз_колво,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( мВыгружатьОстатки AND !ПУСТО( мСкладОстатков ),/##CHR(13)##//##CHR(10)##/ "dbo.fn_calcsklad( sprnn.nn, '''', ''" + мСкладОстатков + "'', ''001'', '''' )", "0" ) + " AS дмз_остаток/##CHR(13)##//##CHR(10)##/ FROM spec" + мКодДок + " spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + мИкДок, "ДМЗаданиеСтроки" );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ мФайлЗадания = ФАЙЛСОЗДАТЬ( мИмяФайлаЗадания );/##CHR(13)##//##CHR(10)##/ IF ( мФайлЗадания < 0 )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "ДМЗаданиеСтроки" );/##CHR(13)##//##CHR(10)##/ RETURN false;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( мФайлЗадания, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) );/##CHR(13)##//##CHR(10)##/ // Первая строка — количество строк файла без учета первой (шапка + строки)/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( мФайлЗадания, ALLTRIM( STR( КОЛИЧЕСТВОСТРОК( "ДМЗаданиеСтроки" ) + 1 ) ) );/##CHR(13)##//##CHR(10)##/ // Шапка: +;Ид;Номер;Дата;ШК;Комментарий;Контрагент;Склад;ИНН;;;;Приоритет;СкладПолучатель;Метка;/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( мФайлЗадания, ПЕРЕКОДИРОВАТЬ( "+;" + мИдЗадания + ";" + мНомерДок + ";" + мДатаДок + ";" + мНомерДок + ";" +/##CHR(13)##//##CHR(10)##/ мКомментарий + ";" + мКлиент + ";" + мСклад + ";" + мИННКлиента + ";;;;0;" +/##CHR(13)##//##CHR(10)##/ мСкладПолучатель + ";" + мМеткаДаты + ";", "ANSI", "UTF-8" ) );/##CHR(13)##//##CHR(10)##/ // Строки задания: №;S;Товар;ШК;Ячейка;Серии;Количество;Остаток;КМ;Палета;Короб;ДопФормы;/##CHR(13)##//##CHR(10)##/ ВЫБРАТЬКОНТЕКСТ( "ДМЗаданиеСтроки" );/##CHR(13)##//##CHR(10)##/ WHILE ( !КОНЕЦКОНТЕКСТА( "ДМЗаданиеСтроки" ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( мФайлЗадания, ПЕРЕКОДИРОВАТЬ( ALLTRIM( STR( НОМЕРСТРОКИ( "ДМЗаданиеСтроки" ) + 1 ) ) + ";S;" +/##CHR(13)##//##CHR(10)##/ ALLTRIM( ДМЗаданиеСтроки.дмз_код ) + ";" + ALLTRIM( ДМЗаданиеСтроки.дмз_шк ) + ";;;" +/##CHR(13)##//##CHR(10)##/ ALLTRIM( STR( ДМЗаданиеСтроки.дмз_колво, 16, 3 ) ) + ";" +/##CHR(13)##//##CHR(10)##/ ALLTRIM( STR( ДМЗаданиеСтроки.дмз_остаток, 16, 3 ) ) + ";;;;[];", "ANSI", "UTF-8" ) );/##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "ДМЗаданиеСтроки" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( мФайлЗадания );/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "ДМЗаданиеСтроки" );/##CHR(13)##//##CHR(10)##/ RETURN true;/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/// ПЕРЕМЕННЫЕ, ЗНАЧЕНИЯ КОТОРЫХ ВЛИЯЮТ НА АЛГОРИТМ ВЫГРУЗКИ/##CHR(13)##//##CHR(10)##/_ВЫГРУЖАТЬОСТАТКИ = true;/##CHR(13)##//##CHR(10)##/_ВЫГРУЖАТЬДОКУМЕНТ = true;/##CHR(13)##//##CHR(10)##/_ВЫГРУЖАТЬЦЕНЫ = true;/##CHR(13)##//##CHR(10)##/_РАБОТАСЕГАИС = ВСПИСКЕ( ПЕРЕМЕННАЯ( "ИНДЕКСУСТРОЙСТВА", 0 ), 1, 3 );/##CHR(13)##//##CHR(10)##/_РАБОТАСМАРКИРОВКОЙ = ВСПИСКЕ( ПЕРЕМЕННАЯ( "ИНДЕКСУСТРОЙСТВА", 0 ), 2, 3 );/##CHR(13)##//##CHR(10)##/_ВЫГРУЖАТЬПОЛЬЗОВАТЕЛЕЙ = true;/##CHR(13)##//##CHR(10)##/_ВЫГРУЖАТЬСКЛАДЫ = true;/##CHR(13)##//##CHR(10)##/_ВЫГРУЖАТЬКОНТРАГЕНТОВ = true;/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/// Параметр профиля «Выгружать шаблоны документов» (Свойства драйвера ТСД): не задан — выгружаем./##CHR(13)##//##CHR(10)##/// Шаблоны достаточно выгрузить один раз, затем параметр можно выключить/##CHR(13)##//##CHR(10)##/exportTemplates = true;/##CHR(13)##//##CHR(10)##/НастройкиДМ = ЗАПРОС( "SELECT value FROM param_ex WHERE param = ''DMTSDSETTINGS" + ALLTRIM( КОДОБОРУДОВАНИЯ ) + "''" );/##CHR(13)##//##CHR(10)##/IF ( !ПУСТО( НастройкиДМ ) )/##CHR(13)##//##CHR(10)##/ РАЗОБРАТЬ_VJSON( НастройкиДМ );/##CHR(13)##//##CHR(10)##/_ВЫГРУЖАТЬШАБЛОНЫ = exportTemplates;/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ПАПКАВЫГРУЗКИ = ЗАПРОС( "SELECT CASE WHEN connectstring = '''' THEN serialnumber ELSE connectstring END FROM sprequipment WHERE code = ''" + КОДОБОРУДОВАНИЯ + "''" );/##CHR(13)##//##CHR(10)##/IF (!ПУСТО(_ПАПКАВЫГРУЗКИ))/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ IF ( ПРАВСИМВ( _ПАПКАВЫГРУЗКИ, 1 ) != "\" )/##CHR(13)##//##CHR(10)##/ _ПАПКАВЫГРУЗКИ += "\";/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( ФАЙЛ(_ПАПКАВЫГРУЗКИ + "IN", 1) )/##CHR(13)##//##CHR(10)##/ _ПАПКАВЫГРУЗКИ += "IN\"; /##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ _ПАПКАВЫГРУЗКИ = "D:\";/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ИМЯФАЙЛАВЫГРУЗКИ = _ПАПКАВЫГРУЗКИ + ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( TTOC( ДАТАВРЕМЯ( ), 4 ), ".", "" ), ":", "" ), " ", "" ) + "_v83";/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ИМЯФАЙЛАТОВАРОВ = _ИМЯФАЙЛАВЫГРУЗКИ + "_Arts.dm";/##CHR(13)##//##CHR(10)##/_ИМЯФАЙЛАШК = _ИМЯФАЙЛАВЫГРУЗКИ + "_BarCodes.dm";/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ФАЙЛТОВАРОВ = ФАЙЛСОЗДАТЬ( _ИМЯФАЙЛАТОВАРОВ );/##CHR(13)##//##CHR(10)##/_ФАЙЛШК = ФАЙЛСОЗДАТЬ( _ИМЯФАЙЛАШК );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАЕГАИС = _ИМЯФАЙЛАВЫГРУЗКИ + "_ArtsEGAIS.dm";/##CHR(13)##//##CHR(10)##/ _ФАЙЛЕГАИС = ФАЙЛСОЗДАТЬ( _ИМЯФАЙЛАЕГАИС ); /##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬПОЛЬЗОВАТЕЛЕЙ)/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАПОЛЬЗОВАТЕЛЕЙ = _ИМЯФАЙЛАВЫГРУЗКИ + "_Users.dm";/##CHR(13)##//##CHR(10)##/ _ФАЙЛПОЛЬЗОВАТЕЛЕЙ = ФАЙЛСОЗДАТЬ( _ИМЯФАЙЛАПОЛЬЗОВАТЕЛЕЙ );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬСКЛАДЫ)/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАСКЛАДОВ = _ИМЯФАЙЛАВЫГРУЗКИ + "_Warehouses.dm";/##CHR(13)##//##CHR(10)##/ _ФАЙЛСКЛАДОВ = ФАЙЛСОЗДАТЬ( _ИМЯФАЙЛАСКЛАДОВ );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ФАЙЛЗАПИСАТЬ( _ФАЙЛТОВАРОВ, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( _ФАЙЛЕГАИС, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ФАЙЛЗАПИСАТЬ( _ФАЙЛШК, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬПОЛЬЗОВАТЕЛЕЙ)/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( _ФАЙЛПОЛЬЗОВАТЕЛЕЙ, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬСКЛАДЫ)/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( _ФАЙЛСКЛАДОВ, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) ); /##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ОШИБКАПОЛЬЗОВАТЕЛИ = false;/##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬПОЛЬЗОВАТЕЛЕЙ)/##CHR(13)##//##CHR(10)##/ _ОШИБКАПОЛЬЗОВАТЕЛИ = _ФАЙЛПОЛЬЗОВАТЕЛЕЙ < 0;/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/_ОШИБКАСКЛАДЫ = false;/##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬСКЛАДЫ)/##CHR(13)##//##CHR(10)##/ _ОШИБКАСКЛАДЫ = _ФАЙЛСКЛАДОВ < 0; /##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ОШИБКАЕГАИС = false;/##CHR(13)##//##CHR(10)##/IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ _ОШИБКАЕГАИС = _ФАЙЛЕГАИС < 0;/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ОШИБКА = _ФАЙЛТОВАРОВ < 0 OR _ФАЙЛШК < 0 OR _ОШИБКАЕГАИС OR _ОШИБКАПОЛЬЗОВАТЕЛИ OR _ОШИБКАСКЛАДЫ;/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/IF ( _ОШИБКА ) /##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ IF ( _ФАЙЛТОВАРОВ >= 0 ) ФАЙЛЗАКРЫТЬ( _ФАЙЛТОВАРОВ );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ IF ( _ФАЙЛЕГАИС >= 0 ) ФАЙЛЗАКРЫТЬ( _ФАЙЛЕГАИС );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF (_ВЫГРУЖАТЬПОЛЬЗОВАТЕЛЕЙ)/##CHR(13)##//##CHR(10)##/ IF ( _ФАЙЛПОЛЬЗОВАТЕЛЕЙ >= 0 ) ФАЙЛЗАКРЫТЬ( _ФАЙЛПОЛЬЗОВАТЕЛЕЙ );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF (_ВЫГРУЖАТЬСКЛАДЫ)/##CHR(13)##//##CHR(10)##/ IF ( _ФАЙЛСКЛАДОВ >= 0 ) ФАЙЛЗАКРЫТЬ( _ФАЙЛСКЛАДОВ ); /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( _ФАЙЛШК >= 0 ) ФАЙЛЗАКРЫТЬ( _ФАЙЛШК );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ RETURN false;/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF ( ТИП( "СПИСОКДОКУМЕНТОВ" ) == "U" ) СПИСОКДОКУМЕНТОВ= "";/##CHR(13)##//##CHR(10)##/IF ( ТИП( "ПРИЗНАКОЧИСТКИТСД" ) == "U" ) ПРИЗНАКОЧИСТКИТСД= false;/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/СКЛАД = ЗАПРОС( "SELECT sklad FROM sprequipment WHERE code= ''" + КОДОБОРУДОВАНИЯ + "''" );/##CHR(13)##//##CHR(10)##/IF ( !ПУСТО( _ИМЯТАБЛИЦЫ ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.nn, /##CHR(13)##//##CHR(10)##/ sprnn.name, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ (SELECT name FROM sprmanuf WHERE code = sprnn.manuf_code) AS nnmanuf, /##CHR(13)##//##CHR(10)##/ sprnn.d_litr, /##CHR(13)##//##CHR(10)##/ (SELECT RTRIM(sprnn.weight) + '' '' + sprnn.ed_weight) AS nnweight, /##CHR(13)##//##CHR(10)##/ sprnn.f_mark, /##CHR(13)##//##CHR(10)##/ sprnn.markgroup,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬЦЕНЫ, "0", ЕСЛИ( !ПУСТО( Склад ), /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcsklad_cena( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'' )", /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcclev_cena( sprnn.nn, '''', ''001'', ''001'' )" ) ) + " AS price,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬОСТАТКИ, "0", "dbo.fn_calcsklad( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )" ) + " AS rest/##CHR(13)##//##CHR(10)##/ FROM " + _ИМЯТАБЛИЦЫ + " temp/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON temp.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ(_РАБОТАСЕГАИС, " WHERE sprnn.nnvid = 0 ", ""), "СписокТоваров" );/##CHR(13)##//##CHR(10)##/ IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.nn, /##CHR(13)##//##CHR(10)##/ sprnn.name, /##CHR(13)##//##CHR(10)##/ (SELECT shortname FROM sprclient WHERE code = sprnn.importer) AS importer, /##CHR(13)##//##CHR(10)##/ sprnn.d_litr, /##CHR(13)##//##CHR(10)##/ sprnn.a_proc, /##CHR(13)##//##CHR(10)##/ (SELECT RTRIM( code ) + '' '' + name FROM sprnnvid WHERE code = sprnn.nnvid ) AS nnvid, /##CHR(13)##//##CHR(10)##/ sprnn.alcocode,/##CHR(13)##//##CHR(10)##/ (SELECT CASE WHEN EXISTS(SELECT * FROM sprres_egais egais WHERE egais.code = sprnn.nn) THEN 1 ELSE 0 END) AS associated, /##CHR(13)##//##CHR(10)##/ sprnn.f_mark, /##CHR(13)##//##CHR(10)##/ sprnn.markgroup,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬЦЕНЫ, "0", ЕСЛИ( !ПУСТО( Склад ), /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcsklad_cena( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'' )", /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcclev_cena( sprnn.nn, '''', ''001'', ''001'' )" ) ) + " AS price,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬОСТАТКИ, "0", "dbo.fn_calcsklad( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )" ) + " AS rest/##CHR(13)##//##CHR(10)##/ FROM " + _ИМЯТАБЛИЦЫ + " temp/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON temp.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE sprnn.nnvid <> 0", "СписокТоваровЕГАИС" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ nnbc.bc, /##CHR(13)##//##CHR(10)##/ spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM " + _ИМЯТАБЛИЦЫ + " temp/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON temp.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 0/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnnbc nnbc ON nnbc.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ UNION /##CHR(13)##//##CHR(10)##/ SELECT sprnn.maincode, sprnn.ed, '''' AS bc, spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM " + _ИМЯТАБЛИЦЫ + " temp/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON temp.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 1", "СписокШК" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE IF ( !ПУСТО( КОДДОКУМЕНТА ) AND ПУСТО( СПИСОКДОКУМЕНТОВ ) AND !ВСПИСКЕ( ALLTRIM( КОДДОКУМЕНТА ), "MRK", "MR2" ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.nn, /##CHR(13)##//##CHR(10)##/ sprnn.name, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ (SELECT name FROM sprmanuf WHERE code = sprnn.manuf_code) AS nnmanuf, /##CHR(13)##//##CHR(10)##/ sprnn.d_litr, /##CHR(13)##//##CHR(10)##/ (SELECT RTRIM(sprnn.weight) + '' '' + sprnn.ed_weight) AS nnweight, /##CHR(13)##//##CHR(10)##/ sprnn.f_mark, /##CHR(13)##//##CHR(10)##/ sprnn.markgroup,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬЦЕНЫ, "0", ЕСЛИ( !ПУСТО( Склад ), /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcsklad_cena( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'' )", /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcclev_cena( sprnn.nn, '''', ''001'', ''001'' )" ) ) + " AS price,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬОСТАТКИ, "0", "dbo.fn_calcsklad( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )" ) + " AS rest/##CHR(13)##//##CHR(10)##/ FROM spec" + КОДДОКУМЕНТА + " spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА + ЕСЛИ(_РАБОТАСЕГАИС, " AND sprnn.nnvid = 0 ", ""), "СписокТоваров" );/##CHR(13)##//##CHR(10)##/ IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.nn, /##CHR(13)##//##CHR(10)##/ sprnn.name, /##CHR(13)##//##CHR(10)##/ (SELECT shortname FROM sprclient WHERE code = sprnn.importer) AS importer, /##CHR(13)##//##CHR(10)##/ sprnn.d_litr, /##CHR(13)##//##CHR(10)##/ sprnn.a_proc, /##CHR(13)##//##CHR(10)##/ (SELECT RTRIM( code ) + '' '' + name FROM sprnnvid WHERE code = sprnn.nnvid ) AS nnvid, /##CHR(13)##//##CHR(10)##/ sprnn.alcocode,/##CHR(13)##//##CHR(10)##/ (SELECT CASE WHEN EXISTS(SELECT * FROM sprres_egais egais WHERE egais.code = sprnn.nn) THEN 1 ELSE 0 END) AS associated, /##CHR(13)##//##CHR(10)##/ sprnn.f_mark, /##CHR(13)##//##CHR(10)##/ sprnn.markgroup,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬЦЕНЫ, "0", ЕСЛИ( !ПУСТО( Склад ), /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcsklad_cena( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'' )", /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcclev_cena( sprnn.nn, '''', ''001'', ''001'' )" ) ) + " AS price,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬОСТАТКИ, "0", "dbo.fn_calcsklad( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )" ) + " AS rest/##CHR(13)##//##CHR(10)##/ FROM spec" + КОДДОКУМЕНТА + " spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE sprnn.nnvid <> 0 AND spec.ic = " + ИДДОКУМЕНТА, "СписокТоваровЕГАИС" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ nnbc.bc, /##CHR(13)##//##CHR(10)##/ spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM spec" + КОДДОКУМЕНТА + " spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 0/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnnbc nnbc ON nnbc.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА + "/##CHR(13)##//##CHR(10)##/ UNION/##CHR(13)##//##CHR(10)##/ SELECT sprnn.maincode, sprnn.ed, '''' AS bc, spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM spec" + КОДДОКУМЕНТА + " spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 1/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА, "СписокШК" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE IF ( !ПУСТО( КОДДОКУМЕНТА ) AND ПУСТО( СПИСОКДОКУМЕНТОВ ) AND ALLTRIM( КОДДОКУМЕНТА ) == "MRK" AND _РАБОТАСМАРКИРОВКОЙ )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT DISTINCT sprnn.maincode AS maincode, spec.ed, spec.nn, spec.name, spec.cena, /##CHR(13)##//##CHR(10)##/ dbo.fn_getbarcodes_ex( spec.nn ) AS barcodes, sprnn.code AS Артикул, sprnn.nnvid AS ВидАлкоголя, /##CHR(13)##//##CHR(10)##/ dbo.fn_alcotype( sprnn.nnvid ) AS alcotype, sprnn.d_litr AS Объем, sprnn.edd_litr AS ЕдиницаОбъема, /##CHR(13)##//##CHR(10)##/ sprnn.weight AS Вес, sprnn.a_proc AS Крепость, sprnn.alcocode AS Алкокод, '''' AS Производитель, /##CHR(13)##//##CHR(10)##/ spr.vendorname AS ПроизводительИмя, spr.vendorinn AS ПроизводительИНН, spr.vendorkpp AS ПроизводительКПП, /##CHR(13)##//##CHR(10)##/ " + ЕСЛИ(ПУСТО(СКЛАД),"0","dbo.fn_calcsklad( spec.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )") + " AS Остаток, /##CHR(13)##//##CHR(10)##/ " + ЕСЛИ(ПУСТО(СКЛАД),"0","dbo.fn_calcsklad_cena( spec.nn, '''', ''" + СКЛАД + "'', ''001'' )") + " AS ЦенаСклада/##CHR(13)##//##CHR(10)##/ FROM mark_in spr/##CHR(13)##//##CHR(10)##/ INNER JOIN mark_in_spec spec ON spr.identity_column = spec.ic/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn sprnn ON spec.nn = sprnn.nn /##CHR(13)##//##CHR(10)##/ WHERE spr.identity_column = " + ИДДОКУМЕНТА, "СписокТоваров" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ nnbc.bc, /##CHR(13)##//##CHR(10)##/ spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM mark_in_spec spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 0/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnnbc nnbc ON nnbc.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА + "/##CHR(13)##//##CHR(10)##/ UNION/##CHR(13)##//##CHR(10)##/ SELECT sprnn.maincode, sprnn.ed, '''' AS bc, spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM mark_in_spec spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 1/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА, "СписокШК" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE IF ( !ПУСТО( КОДДОКУМЕНТА ) AND ПУСТО( СПИСОКДОКУМЕНТОВ ) AND ALLTRIM( КОДДОКУМЕНТА ) == "MR2" AND _РАБОТАСМАРКИРОВКОЙ )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT DISTINCT sprnn.maincode AS maincode, sprnn.ed, spec.nn, sprnn.name, 0 AS cena, /##CHR(13)##//##CHR(10)##/ dbo.fn_getbarcodes_ex( spec.nn ) AS barcodes, sprnn.code AS Артикул, sprnn.nnvid AS ВидАлкоголя, /##CHR(13)##//##CHR(10)##/ dbo.fn_alcotype( sprnn.nnvid ) AS alcotype, sprnn.d_litr AS Объем, sprnn.edd_litr AS ЕдиницаОбъема, /##CHR(13)##//##CHR(10)##/ sprnn.weight AS Вес, sprnn.a_proc AS Крепость, sprnn.alcocode AS Алкокод, '''' AS Производитель, /##CHR(13)##//##CHR(10)##/ '''' AS ПроизводительИмя, '''' AS ПроизводительИНН, '''' AS ПроизводительКПП, /##CHR(13)##//##CHR(10)##/ " + ЕСЛИ(ПУСТО(СКЛАД),"0","dbo.fn_calcsklad( spec.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )") + " AS Остаток, /##CHR(13)##//##CHR(10)##/ " + ЕСЛИ(ПУСТО(СКЛАД),"0","dbo.fn_calcsklad_cena( spec.nn, '''', ''" + СКЛАД + "'', ''001'' )") + " AS ЦенаСклада/##CHR(13)##//##CHR(10)##/ FROM mark_stock_spec spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn sprnn ON spec.nn = sprnn.nn /##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА, "СписокТоваров" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ nnbc.bc, /##CHR(13)##//##CHR(10)##/ spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM mark_stock_spec spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 0/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnnbc nnbc ON nnbc.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА + "/##CHR(13)##//##CHR(10)##/ UNION/##CHR(13)##//##CHR(10)##/ SELECT sprnn.maincode, sprnn.ed, '''' AS bc, spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM mark_stock_spec spec/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 1/##CHR(13)##//##CHR(10)##/ WHERE spec.ic = " + ИДДОКУМЕНТА, "СписокШК" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE IF ( !ПУСТО( СПИСОКДОКУМЕНТОВ ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT DISTINCT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.nn, /##CHR(13)##//##CHR(10)##/ sprnn.name, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ (SELECT name FROM sprmanuf WHERE code = sprnn.manuf_code) AS nnmanuf, /##CHR(13)##//##CHR(10)##/ sprnn.d_litr, /##CHR(13)##//##CHR(10)##/ (SELECT RTRIM(sprnn.weight) + '' '' + sprnn.ed_weight) AS nnweight, /##CHR(13)##//##CHR(10)##/ sprnn.f_mark, /##CHR(13)##//##CHR(10)##/ sprnn.markgroup,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬЦЕНЫ, "0", ЕСЛИ( !ПУСТО( Склад ), /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcsklad_cena( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'' )", /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcclev_cena( sprnn.nn, '''', ''001'', ''001'' )" ) ) + " AS price,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬОСТАТКИ, "0", "dbo.fn_calcsklad( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )" ) + " AS rest/##CHR(13)##//##CHR(10)##/ FROM spec000 spec/##CHR(13)##//##CHR(10)##/ INNER JOIN " + СПИСОКДОКУМЕНТОВ + " temp ON temp.code = spec.code AND temp.ic = spec.ic/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ(_РАБОТАСЕГАИС, " WHERE sprnn.nnvid = 0 ", ""), "СписокТоваров" );/##CHR(13)##//##CHR(10)##/ IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT DISTINCT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.nn, /##CHR(13)##//##CHR(10)##/ sprnn.name, /##CHR(13)##//##CHR(10)##/ (SELECT shortname FROM sprclient WHERE code = sprnn.importer) AS importer, /##CHR(13)##//##CHR(10)##/ sprnn.d_litr, /##CHR(13)##//##CHR(10)##/ sprnn.a_proc, /##CHR(13)##//##CHR(10)##/ (SELECT RTRIM( code ) + '' '' + name FROM sprnnvid WHERE code = sprnn.nnvid ) AS nnvid, /##CHR(13)##//##CHR(10)##/ sprnn.alcocode,/##CHR(13)##//##CHR(10)##/ (SELECT CASE WHEN EXISTS(SELECT * FROM sprres_egais egais WHERE egais.code = sprnn.nn) THEN 1 ELSE 0 END) AS associated, /##CHR(13)##//##CHR(10)##/ sprnn.f_mark, /##CHR(13)##//##CHR(10)##/ sprnn.markgroup,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬЦЕНЫ, "0", ЕСЛИ( !ПУСТО( Склад ), /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcsklad_cena( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'' )", /##CHR(13)##//##CHR(10)##/ "dbo.fn_calcclev_cena( sprnn.nn, '''', ''001'', ''001'' )" ) ) + " AS price,/##CHR(13)##//##CHR(10)##/ " + ЕСЛИ( !_ВЫГРУЖАТЬОСТАТКИ, "0", "dbo.fn_calcsklad( sprnn.nn, '''', ''" + СКЛАД + "'', ''001'', '''' )" ) + " AS rest/##CHR(13)##//##CHR(10)##/ FROM spec000 spec/##CHR(13)##//##CHR(10)##/ INNER JOIN " + СПИСОКДОКУМЕНТОВ + " temp ON temp.code = spec.code AND temp.ic = spec.ic/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ WHERE sprnn.nnvid <> 0", "СписокТоваровЕГАИС" ); /##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT sprnn.maincode, /##CHR(13)##//##CHR(10)##/ sprnn.ed, /##CHR(13)##//##CHR(10)##/ nnbc.bc, /##CHR(13)##//##CHR(10)##/ spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM spec000 spec/##CHR(13)##//##CHR(10)##/ INNER JOIN " + СПИСОКДОКУМЕНТОВ + " temp ON temp.code = spec.code AND temp.ic = spec.ic/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 0/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnnbc nnbc ON nnbc.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ UNION/##CHR(13)##//##CHR(10)##/ SELECT sprnn.maincode, sprnn.ed, '''' AS bc, spredn.f_weight/##CHR(13)##//##CHR(10)##/ FROM spec000 spec/##CHR(13)##//##CHR(10)##/ INNER JOIN " + СПИСОКДОКУМЕНТОВ + " temp ON temp.code = spec.code AND temp.ic = spec.ic/##CHR(13)##//##CHR(10)##/ INNER JOIN sprnn ON spec.nn = sprnn.nn/##CHR(13)##//##CHR(10)##/ INNER JOIN spredn ON spredn.code = sprnn.ed AND spredn.f_weight = 1", "СписокШК" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/// Записываем количество строк/##CHR(13)##//##CHR(10)##/ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛТОВАРОВ, STR( КОЛИЧЕСТВОСТРОК( "СписокТоваров" ) + 2 ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛЕГАИС, STR( КОЛИЧЕСТВОСТРОК( "СписокТоваровЕГАИС" ) + 1 ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛШК, STR( КОЛИЧЕСТВОСТРОК( "СписокШК" ) + 1) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##///записываем режим добавления/##CHR(13)##//##CHR(10)##/ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛТОВАРОВ, ЕСЛИ( ПРИЗНАКОЧИСТКИТСД, "-", "+" ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛЕГАИС, ЕСЛИ( ПРИЗНАКОЧИСТКИТСД, "-", "+" ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛШК, ЕСЛИ( ПРИЗНАКОЧИСТКИТСД, "-", "+" ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/// Записываем количество строк/##CHR(13)##//##CHR(10)##/ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛТОВАРОВ, ПЕРЕКОДИРОВАТЬ( "Единица;Производитель;Объем;Вес;;;;;;;", "ANSI", "UTF-8" ) );/##CHR(13)##//##CHR(10)##/ИНДИКАТОР( "Выгрузка товаров", КОЛИЧЕСТВОСТРОК( "СписокТоваров" ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/// Проходим по списку товаров и записываем их в файл/##CHR(13)##//##CHR(10)##/ВЫБРАТЬКОНТЕКСТ( "СписокТоваров" );/##CHR(13)##//##CHR(10)##/WHILE ( !КОНЕЦКОНТЕКСТА( "СписокТоваров" ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИ( "СписокТоваров" ) % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИ( "СписокТоваров" ), "Выгружено " + STR( НОМЕРСТРОКИ( "СписокТоваров" ) ) + " из " + STR( КОЛИЧЕСТВОСТРОК( "СписокТоваров" ) ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ КодТовара = СписокТоваров.maincode;/##CHR(13)##//##CHR(10)##/ Наименование = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваров.name, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Производитель = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваров.nnmanuf, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Объем = ЗАМЕНИТЬ( STR( СписокТоваров.d_litr, 10, 2 ), ".", "," );/##CHR(13)##//##CHR(10)##/ Единица = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваров.ed, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Вес = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваров.nnweight, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Остаток = "0";/##CHR(13)##//##CHR(10)##/ mMarkGroup = 0;/##CHR(13)##//##CHR(10)##/ //Код группы маркируемого товара 0005 - табачная продукция, 1520 - обувь, 0002 - изделия из меха, 0003 - лекарственные препараты, 9999 - прочая, /##CHR(13)##//##CHR(10)##/ //9998 - легпром, 9997 - шины, 9996 - фото, 9995 - духи и парфюм, 9994 - альтернативный табак, 9993 - молочная продукция,/##CHR(13)##//##CHR(10)##/ //9991 - ювелирная продукция/##CHR(13)##//##CHR(10)##/ //Все то что отмечено флагом "Маркированный", но со значением отличным от перечисленных, выгружается как значение 7 - прочая маркировка/##CHR(13)##//##CHR(10)##/ //0000 - СИЗ - выгружается как обычный товар/##CHR(13)##//##CHR(10)##/ IF ( СписокТоваров.f_mark AND СписокТоваров.markgroup != "0000" )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ // Коды поля 21 (ТребуетМаркировки) по формату Data Mobile:/##CHR(13)##//##CHR(10)##/ // 1-Табак, 2-Обувь, 3-Лекарства, 4-Фото, 5-Молоко, 8-Вода, 10-Пиво, 11-Меха,/##CHR(13)##//##CHR(10)##/ // 12-Безалк.напитки, 14-Консервы, 15-Вет.препараты, 16-Корма, 17-Раст.масла,/##CHR(13)##//##CHR(10)##/ // 18-Игрушки, 21-Косметика/бытхимия, 26-Бакалея, 27-Моторные масла, 32-БАД,/##CHR(13)##//##CHR(10)##/ // 33-ТСР, 34-Кресла-коляски, 35-Антисептики, 36-Велосипеды, 37-Духи, 38-Шины,/##CHR(13)##//##CHR(10)##/ // 39-Одежда, 40-Медизделия, 41-Безалк.пиво, 43-Слабоалкогольные, 45-Спортпитание/##CHR(13)##//##CHR(10)##/ mMarkGroup =/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "0005", 1, // Табачная продукция/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "1520", 2, // Обувь/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "0003", 3, // Лекарственные препараты/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9996", 4, // Фотоаппараты/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9993", 5, // Молочная продукция/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9992", 8, // Упакованная вода/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9989", 10, // Пиво и пивные напитки/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "0002", 11, // Изделия из меха/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9984", 12, // Безалкогольные напитки/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9978", 14, // Консервированная продукция/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9981", 15, // Ветеринарные препараты/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9979", 16, // Корма для животных/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9975", 17, // Растительные масла/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9971", 18, // Игры и игрушки/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9970", 21, // Косметика, бытхимия, гигиена/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9973", 26, // Бакалейная продукция/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9980", 27, // Моторные масла/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9987", 32, // БАД/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9976", 33, // Технические средства реабилитации/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9985", 34, // Кресла-коляски/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9986", 35, // Антисептики/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9983", 36, // Велосипеды/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9995", 37, // Духи и парфюм/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9997", 38, // Шины/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9998", 39, // Одежда и текстиль/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9977", 40, // Медицинские изделия/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9982", 41, // Безалкогольное пиво/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9974", 43, // Слабоалкогольные напитки/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9972", 45, // Спортивное питание/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9994", 1, // Альтернативный табак > Табак/##CHR(13)##//##CHR(10)##/ ЕСЛИ( СписокТоваров.markgroup == "9990", 1, // Никотиносодержащая > Табак/##CHR(13)##//##CHR(10)##/ 0 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //ВЫБРАТЬКОНТЕКСТ( "СписокТоваров" );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ IF ( _ВЫГРУЖАТЬОСТАТКИ )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ Остаток = СписокТоваров.rest;/##CHR(13)##//##CHR(10)##/ //Остаток = ЗАМЕНИТЬ( STR( Остаток, 16, 3 ), ".", "," );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ IF ( _ВЫГРУЖАТЬЦЕНЫ)/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ Цена = СписокТоваров.price; /##CHR(13)##//##CHR(10)##/ //Цена = ЗАМЕНИТЬ( STR( Цена, 16, 3 ),".", "," );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ИспользоватьСН = "0";/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛТОВАРОВ, ПЕРЕКОДИРОВАТЬ( STR( НОМЕРСТРОКИ( "СписокТоваров" ) + 1 ) + ";+;" + КодТовара + ";" + Наименование + ";" + Цена + ";" + Единица + ";" + Производитель + ";" + Объем + ";" +/##CHR(13)##//##CHR(10)##/ Вес + ";;;;;;;" + Остаток + ";" + ИспользоватьСН + ";;;;" + mMarkGroup, "ANSI", "UTF-8") );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "СписокТоваров" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/УДАЛИТЬКОНТЕКСТ( "СписокТоваров" );/##CHR(13)##//##CHR(10)##/ФАЙЛЗАКРЫТЬ( _ФАЙЛТОВАРОВ );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_РАБОТАСЕГАИС)/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( "Выгрузка товаров ЕГАИС", КОЛИЧЕСТВОСТРОК( "СписокТоваровЕГАИС" ) );/##CHR(13)##//##CHR(10)##/ // Проходим по списку товаров ЕГАИС и записываем их в файл/##CHR(13)##//##CHR(10)##/ ВЫБРАТЬКОНТЕКСТ( "СписокТоваровЕГАИС" );/##CHR(13)##//##CHR(10)##/ WHILE ( !КОНЕЦКОНТЕКСТА( "СписокТоваровЕГАИС" ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИ( "СписокТоваровЕГАИС" ) % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИ( "СписокТоваровЕГАИС" ), "Выгружено " + STR( НОМЕРСТРОКИ( "СписокТоваровЕГАИС" ) ) + " из " + STR( КОЛИЧЕСТВОСТРОК( "СписокТоваровЕГАИС" ) ) );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ КодТовара = СписокТоваровЕГАИС.maincode;/##CHR(13)##//##CHR(10)##/ Наименование = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваровЕГАИС.name, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Производитель = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваровЕГАИС.importer, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ ВидПродукции = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваровЕГАИС.nnvid, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Объем = STR( СписокТоваровЕГАИС.d_litr, 10, 2 ); //ЗАМЕНИТЬ( STR( СписокТоваровЕГАИС.d_litr, 10, 2 ), ".", "," );/##CHR(13)##//##CHR(10)##/ Крепость = ЗАМЕНИТЬ( STR( СписокТоваровЕГАИС.a_proc, 10, 2 ), ".", "," );/##CHR(13)##//##CHR(10)##/ Алкокод = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокТоваровЕГАИС.alcocode, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Остаток = "0";/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //ВЫБРАТЬКОНТЕКСТ( "СписокТоваровЕГАИС" );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ IF ( _ВЫГРУЖАТЬОСТАТКИ )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ Остаток = СписокТоваровЕГАИС.rest;/##CHR(13)##//##CHR(10)##/ //Остаток = ЗАМЕНИТЬ( STR( Остаток, 16, 3 ), ".", "," );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ IF ( _ВЫГРУЖАТЬЦЕНЫ)/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ Цена = СписокТоваровЕГАИС.price; /##CHR(13)##//##CHR(10)##/ //Цена = ЗАМЕНИТЬ( STR( Цена, 16, 3 ),".", "," );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ Сопоставлен = СписокТоваровЕГАИС.associated;/##CHR(13)##//##CHR(10)##/ КоличествоВКоробке = "0";/##CHR(13)##//##CHR(10)##/ ВводСправкиА = "0";/##CHR(13)##//##CHR(10)##/ ВводСправкиБ = "0";/##CHR(13)##//##CHR(10)##/ ВводДатыРозлива = "0";/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛЕГАИС, ПЕРЕКОДИРОВАТЬ( STR( НОМЕРСТРОКИ( "СписокТоваровЕГАИС" ) + 1 ) + ";+;" + Наименование + ";" + КодТовара + ";" + Алкокод + ";" + Производитель + ";" + Производитель + ";" + Объем + ";" + Крепость + ";" + /##CHR(13)##//##CHR(10)##/ ВидПродукции + ";" + Сопоставлен + ";" + КоличествоВКоробке + ";" + ВводСправкиА + ";" + ВводСправкиБ + ";" + ВводДатыРозлива + ";", "ANSI", "UTF-8") );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "СписокТоваровЕГАИС" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "СписокТоваровЕГАИС" );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛЕГАИС );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ИНДИКАТОР( "Выгрузка штриховых кодов", КОЛИЧЕСТВОСТРОК( "СписокШК" ) );/##CHR(13)##//##CHR(10)##/// Проходим по списку товаров и записываем их в файл/##CHR(13)##//##CHR(10)##/ВЫБРАТЬКОНТЕКСТ( "СписокШК" );/##CHR(13)##//##CHR(10)##/WHILE ( !КОНЕЦКОНТЕКСТА( "СписокШК" ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИ( "СписокШК" ) % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИ( "СписокШК" ), "Выгружено " + STR( НОМЕРСТРОКИ( "СписокШК" ) ) + " из " + STR( КОЛИЧЕСТВОСТРОК( "СписокШК" ) ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ КодТовара = СписокШК.maincode;/##CHR(13)##//##CHR(10)##/ ШтрихКод = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокШК.bc, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ Единица = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СписокШК.ed, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ ПризнакВесового = ЕСЛИ( СписокШК.f_weight, "1", "0" );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛШК, ПЕРЕКОДИРОВАТЬ( STR( НОМЕРСТРОКИ( "СписокШК" ) + 1 ) + ";+;" + ЕСЛИ(ПУСТО(ШтрихКод), ПРАВСИМВ("00000" + alltrim(КодТовара),5), ШтрихКод) + ";" + Единица + ";1;" + КодТовара + ";" + ПризнакВесового, "ANSI", "UTF-8") );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "СписокШК" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ИНДИКАТОР( );/##CHR(13)##//##CHR(10)##/УДАЛИТЬКОНТЕКСТ( "СписокШК" );/##CHR(13)##//##CHR(10)##/ФАЙЛЗАКРЫТЬ( _ФАЙЛШК );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬПОЛЬЗОВАТЕЛЕЙ)/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Выгружаем справочник пользователей (из справочника работников)/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT code, name, profile, pwd, ex_code/##CHR(13)##//##CHR(10)##/ FROM sprempl WHERE f_loadkkm = 1 AND notavail = 0", "СправочникПользователей"); /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( "Выгрузка пользователей", КОЛИЧЕСТВОСТРОК( "СправочникПользователей" ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛПОЛЬЗОВАТЕЛЕЙ, STR( КОЛИЧЕСТВОСТРОК( "СправочникПользователей" ) + 1 ) );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛПОЛЬЗОВАТЕЛЕЙ, ЕСЛИ( ПРИЗНАКОЧИСТКИТСД, "-", "+" ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ВЫБРАТЬКОНТЕКСТ( "СправочникПользователей" );/##CHR(13)##//##CHR(10)##/ WHILE ( !КОНЕЦКОНТЕКСТА("СправочникПользователей") )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИ( "СправочникПользователей" ) % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИ( "СправочникПользователей" ), "Выгружено " + STR( НОМЕРСТРОКИ( "СправочникПользователей" ) ) + " из " + STR( КОЛИЧЕСТВОСТРОК( "СправочникПользователей" ) ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ИмяПользователя = СправочникПользователей.name;/##CHR(13)##//##CHR(10)##/ ШтрихкодПользователя = СправочникПользователей.ex_code;/##CHR(13)##//##CHR(10)##/ Пароль = СправочникПользователей.pwd;/##CHR(13)##//##CHR(10)##/ ПраваАдмина = ЕСЛИ( VAL(СправочникПользователей.profile) == 30, "1", "0");/##CHR(13)##//##CHR(10)##/ ПраваСозданияТоваров = ПраваАдмина;/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛПОЛЬЗОВАТЕЛЕЙ, ПЕРЕКОДИРОВАТЬ( STR( НОМЕРСТРОКИ( "СправочникПользователей" ) + 1 ) + ";+;" + ИмяПользователя + ";" + ШтрихкодПользователя + ";" + Пароль + ";" + ПраваАдмина + ";" + ПраваСозданияТоваров, "ANSI", "UTF-8") );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "СправочникПользователей" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( );/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "СправочникПользователей" );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛПОЛЬЗОВАТЕЛЕЙ );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬСКЛАДЫ)/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Выгружаем справочник пользователей (из справочника работников)/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT code, name/##CHR(13)##//##CHR(10)##/ FROM sprskl WHERE notavail = 0", "СправочникСкладов"); /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( "Выгрузка складов", КОЛИЧЕСТВОСТРОК( "СправочникСкладов" ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛСКЛАДОВ, STR( КОЛИЧЕСТВОСТРОК( "СправочникСкладов" ) + 1 ) );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛСКЛАДОВ, ЕСЛИ( ПРИЗНАКОЧИСТКИТСД, "-", "+" ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ВЫБРАТЬКОНТЕКСТ( "СправочникСкладов" );/##CHR(13)##//##CHR(10)##/ WHILE ( !КОНЕЦКОНТЕКСТА("СправочникСкладов") )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИ( "СправочникСкладов" ) % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИ( "СправочникСкладов" ), "Выгружено " + STR( НОМЕРСТРОКИ( "СправочникСкладов" ) ) + " из " + STR( КОЛИЧЕСТВОСТРОК( "СправочникСкладов" ) ) );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ КодСклада = СправочникСкладов.code;/##CHR(13)##//##CHR(10)##/ НаименованиеСклада = СправочникСкладов.name; /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛСКЛАДОВ, ПЕРЕКОДИРОВАТЬ( STR( НОМЕРСТРОКИ( "СправочникСкладов" ) + 1 ) + ";+;" + КодСклада + ";" + НаименованиеСклада, "ANSI", "UTF-8") );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "СправочникСкладов" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( );/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "СправочникСкладов" );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛСКЛАДОВ );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF (_ВЫГРУЖАТЬКОНТРАГЕНТОВ)/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Выгружаем справочник контрагентов/##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАКОНТРАГЕНТОВ = _ИМЯФАЙЛАВЫГРУЗКИ + "_Clients.dm";/##CHR(13)##//##CHR(10)##/ _ФАЙЛКОНТРАГЕНТОВ = ФАЙЛСОЗДАТЬ( _ИМЯФАЙЛАКОНТРАГЕНТОВ );/##CHR(13)##//##CHR(10)##/ IF ( _ФАЙЛКОНТРАГЕНТОВ >= 0 )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( _ФАЙЛКОНТРАГЕНТОВ, CHR( 0xef ) + CHR( 0xbb ) + CHR( 0xbf ) );/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "СправочникКонтрагентов" );/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT code, name FROM sprclient WHERE notavail = 0", "СправочникКонтрагентов" );/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( "Выгрузка контрагентов", КОЛИЧЕСТВОСТРОК( "СправочникКонтрагентов" ) );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛКОНТРАГЕНТОВ, STR( КОЛИЧЕСТВОСТРОК( "СправочникКонтрагентов" ) + 1 ) );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛКОНТРАГЕНТОВ, ЕСЛИ( ПРИЗНАКОЧИСТКИТСД, "-", "+" ) );/##CHR(13)##//##CHR(10)##/ ВЫБРАТЬКОНТЕКСТ( "СправочникКонтрагентов" );/##CHR(13)##//##CHR(10)##/ WHILE ( !КОНЕЦКОНТЕКСТА( "СправочникКонтрагентов" ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИ( "СправочникКонтрагентов" ) % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИ( "СправочникКонтрагентов" ), "Выгружено " + STR( НОМЕРСТРОКИ( "СправочникКонтрагентов" ) ) + " из " + STR( КОЛИЧЕСТВОСТРОК( "СправочникКонтрагентов" ) ) );/##CHR(13)##//##CHR(10)##/ КодКонтрагента = ALLTRIM( СправочникКонтрагентов.code );/##CHR(13)##//##CHR(10)##/ ИмяКонтрагента = ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( ЗАМЕНИТЬ( СправочникКонтрагентов.name, """", "" ), CHR( 13 ), "" ), CHR( 10 ), "" ), ";", "" );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬСТРОКУ( _ФАЙЛКОНТРАГЕНТОВ, ПЕРЕКОДИРОВАТЬ( STR( НОМЕРСТРОКИ( "СправочникКонтрагентов" ) + 1 ) + ";+;" + КодКонтрагента + ";" + ИмяКонтрагента + ";" + КодКонтрагента, "ANSI", "UTF-8" ) );/##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "СправочникКонтрагентов" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( );/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "СправочникКонтрагентов" );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛКОНТРАГЕНТОВ );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/// Выгрузка шаблонов документов (отдельный файл *_TempLates.dm) — если включён параметр профиля/##CHR(13)##//##CHR(10)##/IF ( _ВЫГРУЖАТЬШАБЛОНЫ )/##CHR(13)##//##CHR(10)##/ ДМ_ВыгрузитьШаблоны( _ИМЯФАЙЛАВЫГРУЗКИ + "_TempLates.dm", ПРИЗНАКОЧИСТКИТСД );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/// Выгрузка документов-заданий на ТСД/##CHR(13)##//##CHR(10)##/IF ( !ПУСТО( КОДДОКУМЕНТА ) AND ПУСТО( СПИСОКДОКУМЕНТОВ ) AND !ПУСТО( ИДДОКУМЕНТА ) AND !ВСПИСКЕ( ALLTRIM( КОДДОКУМЕНТА ), "MRK", "MR2" ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ ДМ_ВыгрузитьЗадание( ALLTRIM( КОДДОКУМЕНТА ), ИДДОКУМЕНТА, _ИМЯФАЙЛАВЫГРУЗКИ + "_Doc.dm", СКЛАД, _ВЫГРУЖАТЬОСТАТКИ );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE IF ( !ПУСТО( СПИСОКДОКУМЕНТОВ ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "ДМСписокЗаданий" );/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT code AS дмсз_код, ic AS дмсз_ик FROM " + СПИСОКДОКУМЕНТОВ, "ДМСписокЗаданий" );/##CHR(13)##//##CHR(10)##/ НомерФайлаЗадания = 0;/##CHR(13)##//##CHR(10)##/ ВЫБРАТЬКОНТЕКСТ( "ДМСписокЗаданий" );/##CHR(13)##//##CHR(10)##/ WHILE ( !КОНЕЦКОНТЕКСТА( "ДМСписокЗаданий" ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ НомерФайлаЗадания++;/##CHR(13)##//##CHR(10)##/ ДМ_ВыгрузитьЗадание( ALLTRIM( ДМСписокЗаданий.дмсз_код ), ДМСписокЗаданий.дмсз_ик,/##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАВЫГРУЗКИ + ALLTRIM( STR( НомерФайлаЗадания ) ) + "_Doc.dm", СКЛАД, _ВЫГРУЖАТЬОСТАТКИ );/##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "ДМСписокЗаданий" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "ДМСписокЗаданий" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/RETURN true;',0,0,0,0,'02.09.2026 9:40:46') #command INSERT INTO speceqprofiles (CODE,ACTION_ID,ACTION_SCRIPT,F_CHECK,FARC,UPDATED,RECEIVED,EDIT_DAT) VALUES ('----------',16.00000000,'// Используйется следующий шаблон/##CHR(13)##//##CHR(10)##/// ШК;Артикул;Наименование;Характеристика;АлкоНаим;АлкоОбъем;АлкоКрепость;Производитель;ПроизвИНН;ПроизвКПП;АлкоКод;АлкоПДФ;АлкоСН;ДатаРозлива;АлкоЕстьВФормах;КодФормыА;Факт/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ФУНКЦИЯ ДМ_НайтиЗадание( мИдДокумента )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ // Ищет выгруженное задание по GUID из шапки файла результата./##CHR(13)##//##CHR(10)##/ // Возвращает "|код|ик|склад|клиент|фирма|складполучатель" или ""./##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( мИдДокумента ) )/##CHR(13)##//##CHR(10)##/ RETURN "";/##CHR(13)##//##CHR(10)##/ RETURN ЗАПРОС( "SELECT ''|'' + RTRIM( s000.code ) + ''|'' + CAST( s000.ic AS varchar(20) ) + ''|'' +/##CHR(13)##//##CHR(10)##/ RTRIM( ISNULL( s000.sklad, '''' ) ) + ''|'' + RTRIM( ISNULL( s000.client, '''' ) ) + ''|'' +/##CHR(13)##//##CHR(10)##/ RTRIM( ISNULL( s000.firm, '''' ) ) + ''|'' +/##CHR(13)##//##CHR(10)##/ ISNULL( ( SELECT RTRIM( s019.sklad_d ) FROM spr019 s019 WHERE s000.code = ''019'' AND s019.ic = s000.ic ), '''' )/##CHR(13)##//##CHR(10)##/ FROM spr000 s000/##CHR(13)##//##CHR(10)##/ WHERE s000.rid = TRY_CONVERT( uniqueidentifier, ''" + STDF( ALLTRIM( мИдДокумента ) ) + "'' )" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##///загрузим текущие сохраненные настройки обмена из базы/##CHR(13)##//##CHR(10)##/НастройкиДМ = ЗАПРОС("SELECT value FROM param_ex WHERE param = ''DMTSDSETTINGS" + ALLTRIM( КОДОБОРУДОВАНИЯ ) + "''"); /##CHR(13)##//##CHR(10)##/IF ( !ПУСТО( НастройкиДМ ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ //разберем параметры для определения текущих значений/##CHR(13)##//##CHR(10)##/ РАЗОБРАТЬ_VJSON(НастройкиДМ);/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ //если настройки не заданы, то установим значения по умолчанию/##CHR(13)##//##CHR(10)##/ addBarcodes = 0;/##CHR(13)##//##CHR(10)##/ createGoods = 0;/##CHR(13)##//##CHR(10)##/ deleteFiles = 0;/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/СОЗДАВАТЬТОВАРЫ = createGoods; //признак необходимости создания товаров, если не нашли в базе при загрузке/##CHR(13)##//##CHR(10)##/ДОБАВЛЯТЬНОВЫЕШТРИХКОДЫ = addBarcodes; //признак необходимости привязки штрихкодов к товарам, если не нашли в базе при загрузке/##CHR(13)##//##CHR(10)##/УДАЛЯТЬЗАГРУЖАЕМЫЕФАЙЛЫ = deleteFiles; //признак удаления файлов после загрузки/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ПАПКАЗАГРУЗКИ = ЗАПРОС( "SELECT CASE WHEN connectstring = '''' THEN serialnumber ELSE connectstring END FROM sprequipment WHERE code = ''" + КОДОБОРУДОВАНИЯ + "''" );/##CHR(13)##//##CHR(10)##/IF (!ПУСТО(_ПАПКАЗАГРУЗКИ))/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ IF ( ПРАВСИМВ( _ПАПКАЗАГРУЗКИ, 1 ) != "\" )/##CHR(13)##//##CHR(10)##/ _ПАПКАЗАГРУЗКИ += "\";/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( ФАЙЛ(_ПАПКАЗАГРУЗКИ + "OUT", 1) )/##CHR(13)##//##CHR(10)##/ _ПАПКАЗАГРУЗКИ += "OUT\";/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ELSE/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ _ПАПКАЗАГРУЗКИ = "D:\";/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/_ИМЯФАЙЛАЗАГРУЗКИ = ФАЙЛНАЙТИ( _ПАПКАЗАГРУЗКИ + "*DMDoc*.dmU" );/##CHR(13)##//##CHR(10)##/_ИМЯANSIФАЙЛА = _ПАПКАЗАГРУЗКИ + УНИКАЛЬНОЕИМЯ( ) + ".txt";/##CHR(13)##//##CHR(10)##/ИДДОКУМЕНТА = 1;/##CHR(13)##//##CHR(10)##/Фирма = @ФирмаПоУмолчанию;/##CHR(13)##//##CHR(10)##/Склад = ЗАПРОС( "SELECT sklad FROM sprequipment WHERE code= ''" + КОДОБОРУДОВАНИЯ + "''" );/##CHR(13)##//##CHR(10)##/ФирмаБазовая = Фирма;/##CHR(13)##//##CHR(10)##/СкладБазовый = Склад;/##CHR(13)##//##CHR(10)##/СписокНеНайденных = "";/##CHR(13)##//##CHR(10)##/WHILE ( !ПУСТО( _ИМЯФАЙЛАЗАГРУЗКИ ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ //найдем файл штрихкодов и загрузим в контекст/##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАЗАГРУЗКИБЕЗРАСШИРЕНИЯ = STRTRANC( _ИМЯФАЙЛАЗАГРУЗКИ, _ПАПКАЗАГРУЗКИ, "" );/##CHR(13)##//##CHR(10)##/ ДМВременнаяМетка = STRTRANC( ПОЛУЧИТЬСЛОВО(_ИМЯФАЙЛАЗАГРУЗКИБЕЗРАСШИРЕНИЯ, "DMDoc_", ".dmU", 1 ), "DMDoc_", "");/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАШТРИХКОДОВ = ФАЙЛНАЙТИ( _ПАПКАЗАГРУЗКИ + "barcodes_" + ДМВременнаяМетка + ".dmU" );/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( _ИМЯФАЙЛАШТРИХКОДОВ ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "DMBarcodes" );/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ("LOCAL: scanedbarcode text, barcode_koef char, packname char, goods_id char", "DMBarcodes");/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //пересохраним в файл с кодировкой ANSI/##CHR(13)##//##CHR(10)##/ _ИМЯANSIФАЙЛАШК = _ПАПКАЗАГРУЗКИ + "barcodes_" + УНИКАЛЬНОЕИМЯ( ) + ".txt";/##CHR(13)##//##CHR(10)##/ _ФАЙЛЗАГРУЗКИШК = ФАЙЛОТКРЫТЬ( _ИМЯФАЙЛАШТРИХКОДОВ, 0 );/##CHR(13)##//##CHR(10)##/ ФАЙЛУСТАНОВИТЬУКАЗАТЕЛЬ( _ФАЙЛЗАГРУЗКИШК, 0 );/##CHR(13)##//##CHR(10)##/ ДАННЫЕИЗФАЙЛАШК = ФАЙЛПРОЧИТАТЬ( _ФАЙЛЗАГРУЗКИШК, "B", ФАЙЛРАЗМЕР( _ФАЙЛЗАГРУЗКИШК ) );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛЗАГРУЗКИШК );/##CHR(13)##//##CHR(10)##/ _ФАЙЛЗАГРУЗКИШК = ФАЙЛСОЗДАТЬ( _ИМЯANSIФАЙЛАШК );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( _ФАЙЛЗАГРУЗКИШК, ДАННЫЕИЗФАЙЛАШК );/##CHR(13)##//##CHR(10)##/ ФАЙЛУСТАНОВИТЬУКАЗАТЕЛЬ( _ФАЙЛЗАГРУЗКИШК, 0 );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //прочитаем данные из файла в контекст DMBarcodes/##CHR(13)##//##CHR(10)##/ КОЛИЧЕСТВОСТРОКВФАЙЛЕШК = ФАЙЛКОЛИЧЕСТВОСТРОК( _ФАЙЛЗАГРУЗКИШК );/##CHR(13)##//##CHR(10)##/ НОМЕРСТРОКИФАЙЛАШК = 0;/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( "Загрузка файла штрихкодов " + _ФАЙЛЗАГРУЗКИШК, КОЛИЧЕСТВОСТРОКВФАЙЛЕШК );/##CHR(13)##//##CHR(10)##/ WHILE ( !ФАЙЛКОНЕЦФАЙЛА( _ФАЙЛЗАГРУЗКИШК ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ НОМЕРСТРОКИФАЙЛАШК++;/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИФАЙЛАШК % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИФАЙЛАШК, "Загружено штрихкодов " + НОМЕРСТРОКИФАЙЛАШК + " из " + КОЛИЧЕСТВОСТРОКВФАЙЛЕШК );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ СТРОКАДАННЫХШК = ";" + ФАЙЛПРОЧИТАТЬ( _ФАЙЛЗАГРУЗКИШК, "S" );/##CHR(13)##//##CHR(10)##/ ШКПозиции = ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХШК, ";",";", 1 );/##CHR(13)##//##CHR(10)##/ КоэфШК = ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХШК, ";",";", 2 );/##CHR(13)##//##CHR(10)##/ ЕдиницаШК = ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХШК, ";",";", 3 );/##CHR(13)##//##CHR(10)##/ ТоварИД = ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХШК, ";",";", 4 );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ДОБАВИТЬСТРОКИ( 1, "DMBarcodes" );/##CHR(13)##//##CHR(10)##/ ИЗМЕНИТЬПОЛЕ( "DMBarcodes", "scanedbarcode", ШКПозиции );/##CHR(13)##//##CHR(10)##/ ИЗМЕНИТЬПОЛЕ( "DMBarcodes", "barcode_koef", КоэфШК );/##CHR(13)##//##CHR(10)##/ ИЗМЕНИТЬПОЛЕ( "DMBarcodes", "packname", ЕдиницаШК );/##CHR(13)##//##CHR(10)##/ ИЗМЕНИТЬПОЛЕ( "DMBarcodes", "goods_id", ТоварИД );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛЗАГРУЗКИШК );/##CHR(13)##//##CHR(10)##/ ОЖИДАНИЕ( 500 );/##CHR(13)##//##CHR(10)##/ ФАЙЛУДАЛИТЬ( _ИМЯANSIФАЙЛАШК );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( УДАЛЯТЬЗАГРУЖАЕМЫЕФАЙЛЫ )/##CHR(13)##//##CHR(10)##/ ФАЙЛУДАЛИТЬ( _ИМЯФАЙЛАШТРИХКОДОВ );/##CHR(13)##//##CHR(10)##/ ELSE/##CHR(13)##//##CHR(10)##/ ФАЙЛПЕРЕИМЕНОВАТЬ( _ИМЯФАЙЛАШТРИХКОДОВ, _ИМЯФАЙЛАШТРИХКОДОВ + STRTRAN( STRTRAN( STRTRAN( TTOC( ДАТАВРЕМЯ( ), 7 ), ".","" ), ":", "" ), " ", "" ) + ".bak" );/##CHR(13)##//##CHR(10)##/ } /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ // Необходимо перенести данные из файла в таблицу с данными/##CHR(13)##//##CHR(10)##/ КОДДОКУМЕНТА = @КодДокумента;/##CHR(13)##//##CHR(10)##/ _ФАЙЛЗАГРУЗКИ = ФАЙЛОТКРЫТЬ( _ИМЯФАЙЛАЗАГРУЗКИ, 0 );/##CHR(13)##//##CHR(10)##/ ФАЙЛУСТАНОВИТЬУКАЗАТЕЛЬ( _ФАЙЛЗАГРУЗКИ, 0 );/##CHR(13)##//##CHR(10)##/ ДАННЫЕИЗФАЙЛА = ФАЙЛПРОЧИТАТЬ( _ФАЙЛЗАГРУЗКИ, "B", ФАЙЛРАЗМЕР( _ФАЙЛЗАГРУЗКИ ) );/##CHR(13)##//##CHR(10)##/ /*/##CHR(13)##//##CHR(10)##/ IF (!ПУСТО(ДАННЫЕИЗФАЙЛА))/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ СТРОКА = ПЕРЕКОДИРОВАТЬ( ДАННЫЕИЗФАЙЛА , "UTF-16", "ANSI" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ELSE/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ СТРОКА = "";/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ *//##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛЗАГРУЗКИ );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ // Записываем перекодированную строку в новый файл/##CHR(13)##//##CHR(10)##/ _ФАЙЛЗАГРУЗКИ = ФАЙЛСОЗДАТЬ( _ИМЯANSIФАЙЛА );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАПИСАТЬ( _ФАЙЛЗАГРУЗКИ, ДАННЫЕИЗФАЙЛА );/##CHR(13)##//##CHR(10)##/ ФАЙЛУСТАНОВИТЬУКАЗАТЕЛЬ( _ФАЙЛЗАГРУЗКИ, 0 );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ // Читаем первую строку - это заголовки документов/##CHR(13)##//##CHR(10)##/ СТРОКАЗАГОЛОВКОВ = ";" + ФАЙЛПРОЧИТАТЬ( _ФАЙЛЗАГРУЗКИ, "S" );/##CHR(13)##//##CHR(10)##/ ДМ_ВнутреннийИДДок = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 1 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_НомерДокумента = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 2 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_КомментарийДок = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 3 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_ИДДокумента = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 4 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_ТипДокумента = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 5 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_Контрагент = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 6 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_ТСД = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 7 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_Склад = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 8 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_Приоритет = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 9 ), """", "" );/##CHR(13)##//##CHR(10)##/ ДМ_СкладПолучатель = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАЗАГОЛОВКОВ, ";",";", 10 ), """", "" );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ // Привязка результата к выгруженному заданию (ИдентификаторДокумента = spr000.rid)/##CHR(13)##//##CHR(10)##/ Фирма = ФирмаБазовая;/##CHR(13)##//##CHR(10)##/ Склад = СкладБазовый;/##CHR(13)##//##CHR(10)##/ ДокИдЗагрузки = ИДДОКУМЕНТА;/##CHR(13)##//##CHR(10)##/ КлиентЗадания = "";/##CHR(13)##//##CHR(10)##/ СкладПолучЗадания = "";/##CHR(13)##//##CHR(10)##/ РеквизитыЗадания = ДМ_НайтиЗадание( ДМ_ИДДокумента );/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( РеквизитыЗадания ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ КОДДОКУМЕНТА = ПОЛУЧИТЬСЛОВО( РеквизитыЗадания, "|", "|", 1 );/##CHR(13)##//##CHR(10)##/ ДокИдЗагрузки = VAL( ПОЛУЧИТЬСЛОВО( РеквизитыЗадания, "|", "|", 2 ) );/##CHR(13)##//##CHR(10)##/ СкладЗадания = ПОЛУЧИТЬСЛОВО( РеквизитыЗадания, "|", "|", 3 );/##CHR(13)##//##CHR(10)##/ КлиентЗадания = ПОЛУЧИТЬСЛОВО( РеквизитыЗадания, "|", "|", 4 );/##CHR(13)##//##CHR(10)##/ ФирмаЗадания = ПОЛУЧИТЬСЛОВО( РеквизитыЗадания, "|", "|", 5 );/##CHR(13)##//##CHR(10)##/ СкладПолучЗадания = ПОЛУЧИТЬСЛОВО( РеквизитыЗадания, "|", "|", 6 );/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( СкладЗадания ) ) Склад = СкладЗадания;/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( ФирмаЗадания ) ) Фирма = ФирмаЗадания;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ КОЛИЧЕСТВОСТРОКВФАЙЛЕ = ФАЙЛКОЛИЧЕСТВОСТРОК( _ФАЙЛЗАГРУЗКИ );/##CHR(13)##//##CHR(10)##/ НОМЕРСТРОКИФАЙЛА = 0;/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( "Загрузка файла " + _ИМЯФАЙЛАЗАГРУЗКИ, КОЛИЧЕСТВОСТРОКВФАЙЛЕ );/##CHR(13)##//##CHR(10)##/ WHILE ( !ФАЙЛКОНЕЦФАЙЛА( _ФАЙЛЗАГРУЗКИ ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ НОМЕРСТРОКИФАЙЛА++;/##CHR(13)##//##CHR(10)##/ IF ( НОМЕРСТРОКИФАЙЛА % 10 == 0 )/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( НОМЕРСТРОКИФАЙЛА, "Загружено " + НОМЕРСТРОКИФАЙЛА + " из " + КОЛИЧЕСТВОСТРОКВФАЙЛЕ );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ СТРОКАДАННЫХ = ";" + ФАЙЛПРОЧИТАТЬ( _ФАЙЛЗАГРУЗКИ, "S" );/##CHR(13)##//##CHR(10)##/ ТипСтроки = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 1 ), """", "" );/##CHR(13)##//##CHR(10)##/ КодТовара = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 2 ), """", "" );/##CHR(13)##//##CHR(10)##/ ШтрихКод = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 3 ), """", "" );/##CHR(13)##//##CHR(10)##/ Количество = VAL( ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 6 ), """", "" ) );/##CHR(13)##//##CHR(10)##/ Наименование = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 9 ), """", "" );/##CHR(13)##//##CHR(10)##/ КодМаркировки = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 11 ), """", "" );/##CHR(13)##//##CHR(10)##/ ШКДатаматрикс = ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 12 ), """", "" );/##CHR(13)##//##CHR(10)##/ НоваяЦена = VAL( ЗАМЕНИТЬ( ПОЛУЧИТЬСЛОВО( СТРОКАДАННЫХ, ";",";", 17 ), """", "" ) );/##CHR(13)##//##CHR(10)##/ АлкоКод = "";/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( КодМаркировки ) )/##CHR(13)##//##CHR(10)##/ АлкоКод = ЕГАИС.АлкоКодИзМарки( КодМаркировки );/##CHR(13)##//##CHR(10)##/ Товар = "";/##CHR(13)##//##CHR(10)##/ Цена = 0.00;/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ // Определяем товар, по ШК или алкокоду/##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( Товар ) AND !ПУСТО( АлкоКод ) )/##CHR(13)##//##CHR(10)##/ Товар = ЗАПРОС( "SELECT TOP 1 code FROM sprres_egais WHERE alcocode = ''" + STDF( АлкоКод ) + "''" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /*/##CHR(13)##//##CHR(10)##/ //определим весовой товар по коду/##CHR(13)##//##CHR(10)##/ IF ( LEN( ШтрихКод ) < 13 AND ATC( ШтрихКод, КодТовара ) > 0 )/##CHR(13)##//##CHR(10)##/ Товар = ЗАПРОС("SELECT code FROM sprres WHERE maincode= ''" + STDF( КодТовара ) + "''");/##CHR(13)##//##CHR(10)##/ *//##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //определим товар сперва по коду/##CHR(13)##//##CHR(10)##/ Товар = ЗАПРОС("SELECT code FROM sprres WHERE maincode= ''" + STDF( КодТовара ) + "''");/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( Товар ) AND !ПУСТО( ШтрихКод ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ // Сначала надо попробовать распознать штриховой код по шаблону из справочника единиц измерения/##CHR(13)##//##CHR(10)##/ ДОБАВИТЬКОНТЕКСТ( "SELECT code, bctemplate /##CHR(13)##//##CHR(10)##/ FROM spredn /##CHR(13)##//##CHR(10)##/ WHERE bctemplate <> '''' AND LEN( bctemplate ) = " + ДЛИНА( ШтрихКод ) + " AND/##CHR(13)##//##CHR(10)##/ ( CHARINDEX( SUBSTRING( bctemplate, 1, 1 ), ''0123456789'' ) = 0 OR/##CHR(13)##//##CHR(10)##/ ( CHARINDEX( SUBSTRING( bctemplate, 2, 1 ), ''0123456789'' ) = 0 AND /##CHR(13)##//##CHR(10)##/ SUBSTRING( bctemplate, 1, 1 ) = ''" + STDF( LEFT( ШтрихКод, 1 ) ) + "'' ) OR/##CHR(13)##//##CHR(10)##/ SUBSTRING( bctemplate, 1, 2 ) = ''" + STDF( LEFT( ШтрихКод, 2 ) ) + "'' )", "ШаблоныШК", 1 );/##CHR(13)##//##CHR(10)##/ WHILE ( !КОНЕЦКОНТЕКСТА( "ШаблоныШК" ) AND ПУСТО( Товар ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ КодТовараИзШК = "";/##CHR(13)##//##CHR(10)##/ АртикулИзШК = "";/##CHR(13)##//##CHR(10)##/ КоличествоИзШК = "";/##CHR(13)##//##CHR(10)##/ // Проверяем на значащие цифры, удовлетворяет ли наш штрих-код шаблону/##CHR(13)##//##CHR(10)##/ Шаблон = ШаблоныШК.bctemplate;/##CHR(13)##//##CHR(10)##/ НеШтрихКод = false;/##CHR(13)##//##CHR(10)##/ НомерСимвола = 1;/##CHR(13)##//##CHR(10)##/ ДлинаШаблона = ДЛИНА( Шаблон );/##CHR(13)##//##CHR(10)##/ WHILE( НомерСимвола < ДлинаШаблона )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ IF ( AT( "АКМС", ПОДСТРОКА( Шаблон, НомерСимвола, 1 ) ) == 0 AND ПОДСТРОКА( Шаблон, НомерСимвола, 1 ) <> ПОДСТРОКА( ШтрихКод, НомерСимвола, 1 ) )/##CHR(13)##//##CHR(10)##/ НеШтрихКод = true;/##CHR(13)##//##CHR(10)##/ НомерСимвола++;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ IF ( НеШтрихКод )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "ШаблоныШК" );/##CHR(13)##//##CHR(10)##/ CONTINUE;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ НомерСимвола = 1;/##CHR(13)##//##CHR(10)##/ WHILE( НомерСимвола < ДлинаШаблона )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ Символ = ПОДСТРОКА( Шаблон, НомерСимвола, 1 );/##CHR(13)##//##CHR(10)##/ СимволШК = ПОДСТРОКА( ШтрихКод, НомерСимвола, 1 );/##CHR(13)##//##CHR(10)##/ IF ( Символ == "К" )/##CHR(13)##//##CHR(10)##/ КодТовараИзШК += СимволШК;/##CHR(13)##//##CHR(10)##/ ELSE IF ( Символ == "А" )/##CHR(13)##//##CHR(10)##/ АртикулИзШК += СимволШК;/##CHR(13)##//##CHR(10)##/ ELSE IF ( Символ == "М" )/##CHR(13)##//##CHR(10)##/ КоличествоИзШК += СимволШК;/##CHR(13)##//##CHR(10)##/ НомерСимвола++;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( КодТовараИзШК ) OR !ПУСТО( АртикулИзШК ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ Товар = ЗАПРОС("SELECT code FROM sprres/##CHR(13)##//##CHR(10)##/ WHERE " + ЕСЛИ( !ПУСТО( КодТовараИзШК )," maincode= ''" + STDF( VAL( КодТовараИзШК ) ) + "''", /##CHR(13)##//##CHR(10)##/ " a_code= = ''" + STDF( АртикулИзШК ) + "''" ) );/##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( Количество ) )/##CHR(13)##//##CHR(10)##/ Количество = VAL( КоличествоИзШК ) / 1000.00;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ПРОПУСТИТЬ( 1, "ШаблоныШК" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( Товар ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ // Если не нашли подходящий шаблон или товар, то ищем в таблицах штриховых кодов/##CHR(13)##//##CHR(10)##/ ШтрихКод = STDF( ШтрихКод );/##CHR(13)##//##CHR(10)##/ Товар = ЗАПРОС("SELECT nn FROM sprnnbc WHERE bc= ''" + ШтрихКод + "'' /##CHR(13)##//##CHR(10)##/ UNION SELECT code FROM sprres_ed WHERE barcode= ''" + ШтрихКод + "''/##CHR(13)##//##CHR(10)##/ UNION SELECT nn FROM reg006 WHERE bc= ''" + ШтрихКод + "''/##CHR(13)##//##CHR(10)##/ UNION SELECT nn FROM reg009 WHERE bc= ''" + ШтрихКод + "''" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( Товар ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ IF ( ВСПИСКЕ( КОДДОКУМЕНТА, "001", "005" ) AND !ПУСТО( НоваяЦена ) )/##CHR(13)##//##CHR(10)##/ Цена = НоваяЦена; // берем введенную цену из ТСД для приходов и переоценок/##CHR(13)##//##CHR(10)##/ ELSE IF ( КОДДОКУМЕНТА == "001" )/##CHR(13)##//##CHR(10)##/ Цена = ЗАПРОС( " SELECT TOP 1 cena/##CHR(13)##//##CHR(10)##/ FROM reg001/##CHR(13)##//##CHR(10)##/ WHERE nn= ''" + Товар + "'' AND account_= ''001'' AND priz= ''+'' AND/##CHR(13)##//##CHR(10)##/ ( DATEDIFF( day, date, GETDATE( ) ) > 0 OR /##CHR(13)##//##CHR(10)##/ ( DATEDIFF( day, date, GETDATE( ) ) = 0 AND DATEDIFF( second, date, GETDATE( ) ) >= 0 ) ) AND sklad= ''" + Склад + "'' /##CHR(13)##//##CHR(10)##/ ORDER BY date DESC, identity_column DESC " );/##CHR(13)##//##CHR(10)##/ ELSE/##CHR(13)##//##CHR(10)##/ Цена = ЗАПРОС( " SELECT dbo.fn_calcsklad_cena( ''" + Товар + "'', '''', ''" + Склад + "'', ''001'' )" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( Наименование ) )/##CHR(13)##//##CHR(10)##/ Наименование = ЗАПРОС( "SELECT name FROM sprres WHERE code = ''" + Товар + "''" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ //если в идентификаторе товара встретили dm то товар был создан на ТСД/##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( Товар ) AND ATC(КодТовара,"dm") > 0 )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ //СОЗДАНИЕ ТОВАРОВ/##CHR(13)##//##CHR(10)##/ IF ( СОЗДАВАТЬТОВАРЫ ) /##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ПАПКАДЛЯНОВЫХТОВАРОВ = ЗАПРОС("SELECT identity_column FROM spectree WHERE objtype = ''SPR'' AND objcode = ''S02'' AND folder = 1 AND name = ''Справочник''");/##CHR(13)##//##CHR(10)##/ КОДНАЛОГА = ЗАПРОС( "SELECT value FROM param WHERE param = ''kodn''" );/##CHR(13)##//##CHR(10)##/ ЕДИНИЦАИЗМЕРЕНИЯ = "шт";/##CHR(13)##//##CHR(10)##/ КОДГРУППЫРЕСУРСОВ = "";/##CHR(13)##//##CHR(10)##/ МИНИМАЛЬНЫЙОСТАТОК = 0;/##CHR(13)##//##CHR(10)##/ ЕСТУБЫЛЬ = "";/##CHR(13)##//##CHR(10)##/ ЕСТУБЫЛЬХРАН = "";/##CHR(13)##//##CHR(10)##/ ЕСТУБЫЛЬЗНАЧ = 0;/##CHR(13)##//##CHR(10)##/ ЕСТУБЫЛЬХРАНЗНАЧ = 0;/##CHR(13)##//##CHR(10)##/ // Добвляем новый товар в нужную папку/##CHR(13)##//##CHR(10)##/ ИДТовара = ЗАПРОС( "INSERT INTO sprres ( code, maincode, name, shortname, alcocode, cat, kodn, note, ccgroup, group_, parent,/##CHR(13)##//##CHR(10)##/ ed, min_, lossrealization, lossstore, lossreal_val, lossstore_val )/##CHR(13)##//##CHR(10)##/ VALUES ( /##CHR(13)##//##CHR(10)##/ '''', dbo.fn_getnextmaincode( ), ''" + Наименование + "'', ''" + Наименование + "'', ''" + АлкоКод + "'', ''001'', ''" + КОДНАЛОГА + "'', ''Товар добавлен при загрузке из ТСД'',/##CHR(13)##//##CHR(10)##/ ''0000000001'', ''" + КОДГРУППЫРЕСУРСОВ + "'', " + ПАПКАДЛЯНОВЫХТОВАРОВ + ", ''" + ЕДИНИЦАИЗМЕРЕНИЯ + "'', " + STR( МИНИМАЛЬНЫЙОСТАТОК, 16, 2 ) + ",/##CHR(13)##//##CHR(10)##/ ''" + ЕСТУБЫЛЬ + "'', ''" + ЕСТУБЫЛЬХРАН + "'', " + STR( ЕСТУБЫЛЬЗНАЧ, 16 ,2 ) + ", " + STR( ЕСТУБЫЛЬХРАНЗНАЧ, 16, 2 ) + " ) " );/##CHR(13)##//##CHR(10)##/ Товар = ЗАПРОС( "SELECT code FROM sprres WHERE identity_column = " + ИДТовара );/##CHR(13)##//##CHR(10)##/ //запишем штрихкод/##CHR(13)##//##CHR(10)##/ ИДШтрихкода = ЗАПРОС("INSERT INTO sprnnbc (nn, bc)/##CHR(13)##//##CHR(10)##/ VALUES (''" + Товар + "'',''" + ШтрихКод + "'')");/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ //КОНЕЦ СОЗДАНИЯ ТОВАРОВ /##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //добавим штрихкод к товару, если с ТСД получен ШК товара, которого нет в базе Айтиды/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( Товар ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ //Проверим, нет ли такого штрихкода в базе /##CHR(13)##//##CHR(10)##/ ТоварПоШК = ЗАПРОС("SELECT nn FROM sprnnbc WHERE bc= ''" + STDF(ШтрихКод) + "'' /##CHR(13)##//##CHR(10)##/ UNION SELECT code FROM sprres_ed WHERE barcode= ''" + STDF(ШтрихКод) + "''/##CHR(13)##//##CHR(10)##/ UNION SELECT nn FROM reg006 WHERE bc= ''" + STDF(ШтрихКод) + "''/##CHR(13)##//##CHR(10)##/ UNION SELECT nn FROM reg009 WHERE bc= ''" + STDF(ШтрихКод) + "''" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //если штрихкода в базе нет и штрихкод следующих форматов: EAN8, EAN13/##CHR(13)##//##CHR(10)##/ //IF ( ДОБАВЛЯТЬНОВЫЕШТРИХКОДЫ AND ПУСТО( ТоварПоШК ) AND ВСПИСКЕ( LEN( ALLTRIM( ШтрихКод ) ), 8, 13 ) )/##CHR(13)##//##CHR(10)##/ IF ( ДОБАВЛЯТЬНОВЫЕШТРИХКОДЫ AND ПУСТО( ТоварПоШК ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ // Добавляем штриховой код в выбранный товар/##CHR(13)##//##CHR(10)##/ ЗАПРОС( "INSERT INTO sprnnbc ( nn, bc ) SELECT code, ''" + ШтрихКод + "'' FROM sprres WHERE code= ''" + Товар + "''" );/##CHR(13)##//##CHR(10)##/ // произведем изменение товара, чтобы данные по нему передались в РМК/##CHR(13)##//##CHR(10)##/ ЗАПРОС( "UPDATE sprres SET ex_code = ex_code WHERE code = ''" + Товар + "''" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ // Если не определили товар и пустая марка, то выводим сообщение/##CHR(13)##//##CHR(10)##/ IF ( ПУСТО( КодМаркировки ) AND ПУСТО( Товар ) AND ПУСТО( АлкоКод ) )/##CHR(13)##//##CHR(10)##/ СписокНеНайденных += ШтрихКод + " " + Наименование + CHR( 13 );/##CHR(13)##//##CHR(10)##/ ELSE/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ // Если есть марка, то вместо ШК записываем ее/##CHR(13)##//##CHR(10)##/ IF ( !ПУСТО( КодМаркировки ) ) ШтрихКод = STDF( КодМаркировки );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //если нет контекста с кодами маркировок (нет файла со штрихкодами), то загружаем как обычно/##CHR(13)##//##CHR(10)##/ IF ( КОЛИЧЕСТВОСТРОК( "DMBarcodes" ) == 0 )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ЗАПРОС( "INSERT INTO " + _ИМЯТАБЛИЦЫ + " ( doccode, docid, date, nn, nnname, kolp, cena, summa, barcode, firm, sklad, alcocode, client, sklad_d )/##CHR(13)##//##CHR(10)##/ VALUES( ''" + КОДДОКУМЕНТА + "'', " + /##CHR(13)##//##CHR(10)##/ ДокИдЗагрузки + ", " + /##CHR(13)##//##CHR(10)##/ "GETDATE( )" + ", " + /##CHR(13)##//##CHR(10)##/ "''" + Товар + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + STDF( Наименование ) + "'', " +/##CHR(13)##//##CHR(10)##/ STR( Количество, 16, 3 ) + ", " + /##CHR(13)##//##CHR(10)##/ STR( Цена, 16, 2 ) + ", " +/##CHR(13)##//##CHR(10)##/ STR( Цена * Количество, 16, 2 ) + ", " +/##CHR(13)##//##CHR(10)##/ "''" + STDF( ШтрихКод ) + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + Фирма + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + Склад + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + STDF( АлкоКод ) + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + КлиентЗадания + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + СкладПолучЗадания + "'' )" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ELSE/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ //если есть штрихкоды, то обработаем и загрузим их/##CHR(13)##//##CHR(10)##/ IF ( НАЙТИ( "DMBarcodes", "goods_id", КодТовара ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ЕСТЬЕЩЕДАННЫЕ = true;/##CHR(13)##//##CHR(10)##/ ПродолжаемДобавление = 1;/##CHR(13)##//##CHR(10)##/ WHILE ( ПродолжаемДобавление >= 0 )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ ШКПозиции = ЗНАЧЕНИЕПОЛЯ( "DMBarcodes", "scanedbarcode", "" );/##CHR(13)##//##CHR(10)##/ КоэфШК = ЗНАЧЕНИЕПОЛЯ( "DMBarcodes", "barcode_koef", 1 );/##CHR(13)##//##CHR(10)##/ ЕдиницаШК = ЗНАЧЕНИЕПОЛЯ( "DMBarcodes", "packname", "шт" ); /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //Проверим, нет ли такого штрихкода в базе /##CHR(13)##//##CHR(10)##/ ТоварПоШК = ЗАПРОС("SELECT nn FROM sprnnbc WHERE bc= ''" + STDF(ШКПозиции) + "'' /##CHR(13)##//##CHR(10)##/ UNION SELECT code FROM sprres_ed WHERE barcode= ''" + STDF(ШКПозиции) + "''/##CHR(13)##//##CHR(10)##/ UNION SELECT nn FROM reg006 WHERE bc= ''" + STDF(ШКПозиции) + "''/##CHR(13)##//##CHR(10)##/ UNION SELECT nn FROM reg009 WHERE bc= ''" + STDF(ШКПозиции) + "''" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ //если штрихкода в базе нет и штрихкод следующих форматов: EAN8, EAN13/##CHR(13)##//##CHR(10)##/ //IF ( ДОБАВЛЯТЬНОВЫЕШТРИХКОДЫ AND ПУСТО( ТоварПоШК ) AND ВСПИСКЕ( LEN( ALLTRIM( ШтрихКод ) ), 8, 13 ) )/##CHR(13)##//##CHR(10)##/ IF ( ДОБАВЛЯТЬНОВЫЕШТРИХКОДЫ AND ПУСТО( ТоварПоШК ) )/##CHR(13)##//##CHR(10)##/ {/##CHR(13)##//##CHR(10)##/ // Добавляем штриховой код в выбранный товар/##CHR(13)##//##CHR(10)##/ ЗАПРОС( "INSERT INTO sprnnbc ( nn, bc ) SELECT code, ''" + ШКПозиции + "'' FROM sprres WHERE code= ''" + Товар + "''" );/##CHR(13)##//##CHR(10)##/ // произведем изменение товара, чтобы данные по нему передались в РМК/##CHR(13)##//##CHR(10)##/ ЗАПРОС( "UPDATE sprres SET ex_code = ex_code WHERE code = ''" + Товар + "''" );/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ЗАПРОС( "INSERT INTO " + _ИМЯТАБЛИЦЫ + " ( doccode, docid, date, nn, nnname, kolp, cena, summa, barcode, firm, sklad, client, sklad_d )/##CHR(13)##//##CHR(10)##/ VALUES( ''" + КОДДОКУМЕНТА + "'', " + /##CHR(13)##//##CHR(10)##/ ДокИдЗагрузки + ", " + /##CHR(13)##//##CHR(10)##/ "GETDATE( )" + ", " + /##CHR(13)##//##CHR(10)##/ "''" + Товар + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + STDF( Наименование ) + "'', " +/##CHR(13)##//##CHR(10)##/ STR( 1, 16, 3 ) + ", " + /##CHR(13)##//##CHR(10)##/ STR( Цена, 16, 2 ) + ", " +/##CHR(13)##//##CHR(10)##/ STR( Цена, 16, 2 ) + ", " +/##CHR(13)##//##CHR(10)##/ "''" + STDF( ШКПозиции ) + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + Фирма + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + Склад + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + КлиентЗадания + "'', " +/##CHR(13)##//##CHR(10)##/ "''" + СкладПолучЗадания + "'' )" ); /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ ЕСТЬЕЩЕДАННЫЕ = ПРОДОЛЖИТЬПОИСК( "DMBarcodes" );/##CHR(13)##//##CHR(10)##/ IF ( !ЕСТЬЕЩЕДАННЫЕ )/##CHR(13)##//##CHR(10)##/ ПродолжаемДобавление = ПродолжаемДобавление - 1;/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ }/##CHR(13)##//##CHR(10)##/ ИНДИКАТОР( );/##CHR(13)##//##CHR(10)##/ ФАЙЛЗАКРЫТЬ( _ФАЙЛЗАГРУЗКИ );/##CHR(13)##//##CHR(10)##/ ОЖИДАНИЕ( 500 );/##CHR(13)##//##CHR(10)##/ ФАЙЛУДАЛИТЬ( _ИМЯANSIФАЙЛА );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ IF ( УДАЛЯТЬЗАГРУЖАЕМЫЕФАЙЛЫ )/##CHR(13)##//##CHR(10)##/ ФАЙЛУДАЛИТЬ( _ИМЯФАЙЛАЗАГРУЗКИ );/##CHR(13)##//##CHR(10)##/ ELSE/##CHR(13)##//##CHR(10)##/ ФАЙЛПЕРЕИМЕНОВАТЬ( _ИМЯФАЙЛАЗАГРУЗКИ, _ИМЯФАЙЛАЗАГРУЗКИ + STRTRAN( STRTRAN( STRTRAN( TTOC( ДАТАВРЕМЯ( ), 7 ), ".","" ), ":", "" ), " ", "" ) + ".bak" );/##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ _ИМЯФАЙЛАЗАГРУЗКИ = ФАЙЛНАЙТИСЛЕДУЮЩИЙ( );/##CHR(13)##//##CHR(10)##/ ИДДОКУМЕНТА++;/##CHR(13)##//##CHR(10)##/ УДАЛИТЬКОНТЕКСТ( "DMBarcodes" );/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##/ФАЙЛЗАКОНЧИТЬПОИСК( );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/IF ( !ПУСТО( СписокНеНайденных ) )/##CHR(13)##//##CHR(10)##/ СООБЩЕНИЕ( "Следующие товары не были найдены в базе данных:" + CHR( 13 ) + СписокНеНайденных );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/RETURN true;',0,0,0,0,'02.09.2026 9:40:46') #command INSERT INTO speceqprofiles (CODE,ACTION_ID,ACTION_SCRIPT,F_CHECK,FARC,UPDATED,RECEIVED,EDIT_DAT) VALUES ('----------',19.00000000,'//Имя устройства ТСД/##CHR(13)##//##CHR(10)##/IF ( ИНДЕКСУСТРОЙСТВА == 1 )/##CHR(13)##//##CHR(10)##/ ИМЯУСТРОЙСТВА = "Data Mobile с ЕГАИС"; /##CHR(13)##//##CHR(10)##/ELSE IF ( ИНДЕКСУСТРОЙСТВА == 2 )/##CHR(13)##//##CHR(10)##/ ИМЯУСТРОЙСТВА = "Data Mobile с Маркировкой";/##CHR(13)##//##CHR(10)##/ELSE IF ( ИНДЕКСУСТРОЙСТВА == 3 )/##CHR(13)##//##CHR(10)##/ ИМЯУСТРОЙСТВА = "Data Mobile с ЕГАИС и Маркировкой";/##CHR(13)##//##CHR(10)##/ELSE/##CHR(13)##//##CHR(10)##/ ИМЯУСТРОЙСТВА = "Data Mobile";/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/RETURN ИМЯУСТРОЙСТВА;',0,0,0,0,'02.09.2026 9:40:46') #command INSERT INTO speceqprofiles (CODE,ACTION_ID,ACTION_SCRIPT,F_CHECK,FARC,UPDATED,RECEIVED,EDIT_DAT) VALUES ('----------',20.00000000,'//Количество устройств ТСД/##CHR(13)##//##CHR(10)##/RETURN 4;',0,0,0,0,'02.09.2026 9:40:46') #command INSERT INTO speceqprofiles (CODE,ACTION_ID,ACTION_SCRIPT,F_CHECK,FARC,UPDATED,RECEIVED,EDIT_DAT) VALUES ('----------',18.00000000,'//Свойства драйвера ТСД/##CHR(13)##//##CHR(10)##/ПараметрыDM = "/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/ /##CHR(13)##//##CHR(10)##/";/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##///загрузим текущие сохраненные настройки из базы (exportTemplates до разбора — для настроек, сохраненных без него)/##CHR(13)##//##CHR(10)##/exportTemplates = true;/##CHR(13)##//##CHR(10)##/НастройкиДМ = ЗАПРОС("SELECT value FROM param_ex WHERE param = ''DMTSDSETTINGS" + ALLTRIM( КОДОБОРУДОВАНИЯ ) + "''"); /##CHR(13)##//##CHR(10)##/IF ( !ПУСТО( НастройкиДМ ) )/##CHR(13)##//##CHR(10)##/{/##CHR(13)##//##CHR(10)##/ //разберем параметры для определения текущих значений/##CHR(13)##//##CHR(10)##/ РАЗОБРАТЬ_VJSON(НастройкиДМ);/##CHR(13)##//##CHR(10)##/}/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/ОТПРАВИТЬСООБЩЕНИЕ( _ГЛАВНОЕОКНОПРИЛОЖЕНИЯ, _СООБЩЕНИЕВЫПОЛНИТЬКОМАНДУ, "ЗАПРОСПАРАМЕТРОВ", ПараметрыDM );/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##///если отказались от ввода параметров, то завершаем выполнение без сохранения параметров/##CHR(13)##//##CHR(10)##/IF ( !_РЕЗУЛЬТАТВВОДАПАРАМЕТРОВ )/##CHR(13)##//##CHR(10)##/ RETURN "";/##CHR(13)##//##CHR(10)##//##CHR(13)##//##CHR(10)##/НовыеНастройкиДМ = СФОРМИРОВАТЬ_VJSON("createGoods addBarcodes deleteFiles exportTemplates");/##CHR(13)##//##CHR(10)##///сохраняем новые параметры базу/##CHR(13)##//##CHR(10)##/ЗАПРОС("DELETE FROM param_ex WHERE param = ''DMTSDSETTINGS" + КОДОБОРУДОВАНИЯ + "''"); /##CHR(13)##//##CHR(10)##/ЗАПРОС("INSERT INTO param_ex (param, value) VALUES (''DMTSDSETTINGS" + КОДОБОРУДОВАНИЯ + "'', ''" + НовыеНастройкиДМ + "'')");',0,0,0,0,'02.09.2026 9:40:46') #command INSERT INTO spreqprofiles (CODE,EX_CODE,NAME,TYPE,PORT,NOTE,PARENT,POSORDER,NOTAVAIL,MAINDB,MAINIC,CACCESS,TACCESS,FOLDER,RID,FARC,UPDATED,RECEIVED,EDIT_DAT) VALUES ('','','Профиль ТСД Data Mobile (файловый обмен)','ТСД',0.00000000,'Профиль обмена с ПО DataMobile. Совместим с Айтидой, начиная с версии 4.6.5 и выше',0.00000000,7682.00000000,0,'',0.00000000,'','',0,'91A511C6-CD20-4264-BB84-B3D0069A2986',0,1,0,'02.09.2026 9:40:46')