Имя: Пароль:
1C
1С v8
Барабашки 8.3 + DBF
0 AlexSTAL
 
30.12.16
07:41
1С 8.3.7.1860, SQL
Конфигурация Пятая среда, управление торговыми представителями

Торговые представители скидывают заявки с планшетов,
они попадают в СОД/репликатор, он генерирует XML-файлы,
запускается 1С, там происходит загрузка информации из XML
и одновременно каждая полученная заявка выгружается в файл DBF.

Траблы: пару-тройку раз в день получается "битый" DBF
Что это значит - в нём немного другие колонки, строки идентичны.
"Битые" всегда одинакого. Если запустить вручную функцию выгрузки -
то файл формируется корректным.

Вот код обработки записи в DBF:

Процедура ВыгрузитьЗаявку() Экспорт
    //Если Не ЭтотОбъект.Выгружена тогда
    Если Истина Тогда
        //ПроверитьПапку();
        Если Константы.ТипФайловОбмена.Получить()=Перечисления.ТипФайлов.Текст тогда
            ТекстДок=Новый ТекстовыйДокумент;
            Если Константы.КодировкаДБФ.Получить()=Перечисления.КодировкиДБФ.ANSI тогда
                ТекстДок.УстановитьТипФайла(КодировкаТекста.ANSI);
            иначе
                ТекстДок.УстановитьТипФайла(КодировкаТекста.ANSI);
            конецесли;
            ПроверитьСуществованиеКаталога(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\");
            Если СуществуетФайл(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xxt")=1 тогда
                ТекстДок.Прочитать(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xxt");
                ТекстДок.Очистить();
            иначе
                ТекстДок.Записать(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xxt");
            конецесли;
            ТекСтр="";
            ТекСтр=ТекСтр+Формат(Клиент.Код, "ЧГ=0");
            ТекСтр=ТекСтр+Символы.Таб+Формат(Фирма.Код, "ЧГ=0");
            ТекСтр=ТекСтр+Символы.Таб+Формат(АдресДоставки.НомерАдреса, "ЧГ=0");
            ТекСтр=ТекСтр+Символы.Таб+Формат(Датадоставки, "ДФ=dd.MM.yyyy");
            ТекПрим=Примечание;
            Если Найти(ТекПрим,""
                "")<>0 тогда
                ТекПрим=Лев(СтрЗаменить(ТекПрим,Символы.ПС," "),Найти(ТекПрим,""
                "")-2);
            Конецесли;
            ТекСтр=ТекСтр+Символы.Таб+ТекПрим;
            ТекШап=ТекСтр;
            Для каждого СтрТов Из Товары Цикл
                ТекСтр="";
                ТекСтр=ТекШап+Символы.Таб+ТекСтр+Формат(СтрТов.Товар.Код, "ЧГ=0");
                ТекСтр=ТекСтр+Символы.Таб+Формат(СтрТов.Количество, "ЧГ=0");
                ТекСтр=ТекСтр+Символы.Таб+Формат(СтрТов.Цена, "ЧГ=0");
                ТекстДок.ДобавитьСтроку(ТекСтр);
            КонецЦикла;
            Если Константы.КодировкаДБФ.Получить()=Перечисления.КодировкиДБФ.ANSI тогда
                ТекстДок.УстановитьТипФайла(КодировкаТекста.ANSI);
            иначе
                ТекстДок.УстановитьТипФайла(КодировкаТекста.ANSI);
            конецесли;
            ТекстДок.Записать(Константы.ПапкаОбмена.Получить()+"zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xxt",КодировкаТекста.ANSI);
            ПереместитьФайл(Константы.ПапкаОбмена.Получить()+"zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xxt",Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".txt");
        иначеесли Константы.ТипФайловОбмена.Получить()=Перечисления.ТипФайлов.XML тогда
            хмлдок=новый ЗаписьXML;
            ПроверитьСуществованиеКаталога(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\");
            хмлдок.ОткрытьФайл(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xml","UTF-16");
            хмлдок.ЗаписатьОбъявлениеXML();
            хмлдок.ЗаписатьНачалоЭлемента("ЗАЯВКА");
            Для каждого СтрТов Из Товары Цикл
                хмлдок.ЗаписатьНачалоЭлемента("Элемент");
                хмлдок.ЗаписатьАтрибут("IDBUYER",Строка(Клиент.Код));
                хмлдок.ЗаписатьАтрибут("IDFIRM",Строка(Фирма.Код));
                хмлдок.ЗаписатьАтрибут("DELIVERYDATE",Строка(Датадоставки));
                хмлдок.ЗаписатьАтрибут("NOM_ADDR",Строка(АдресДоставки.НомерАдреса));
                хмлдок.ЗаписатьАтрибут("PRIM",Строка(Примечание));
                хмлдок.ЗаписатьАтрибут("IDGOODS",Строка(СтрТов.Товар.Код));
                хмлдок.ЗаписатьАтрибут("QUANT",Строка(СтрТов.Количество));
                хмлдок.ЗаписатьАтрибут("PRICE",Строка(СтрТов.Цена));
                хмлдок.ЗаписатьКонецЭлемента();
            КонецЦикла;
            хмлдок.ЗаписатьКонецЭлемента();
        иначеесли  Константы.ТипФайловОбмена.Получить()=Перечисления.ТипФайлов.ДБФ тогда
            СтопФайл = Новый Файл(Константы.ПапкаОбмена.Получить()+"\"+СокрЛП(Фирма.КодСтр)+"\stop");
            //Если СтопФайл.Существует() тогда
            //    Предупреждение("Выгрузка документа не возможна! Попробуйте ещё раз");
            //    Отказ=Истина;
            //иначе    
            ТекстСтоп=Новый ТекстовыйДокумент;
            ТекстСтоп.Записать(Константы.ПапкаОбмена.Получить()+"stop");
            ДБФ = Новый XBase;
            Если Константы.КодировкаДБФ.Получить()=Перечисления.КодировкиДБФ.ANSI тогда
                ДБФ.Кодировка=КодировкаXBase.ANSI;
            иначе
                ДБФ.Кодировка=КодировкаXBase.OEM;
            конецесли;
            ПроверитьСуществованиеКаталога(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\");
            Если СуществуетФайл(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xbf")=1 тогда
                ДБФ.ОткрытьФайл(Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xbf");
                ДБФ.Очистить();
            ИначеЕсли СуществуетФайл(Константы.ПапкаОбмена.Получить()+"Z"+Номер+".dbf")=1 Тогда
                ДБФ.ОткрытьФайл(Константы.ПапкаОбмена.Получить()+"Z"+Номер+".dbf");
                ДБФ.ОчиститьФайл();
            иначе
                ДБФ.поля.Добавить("IDBUYER","S",100);
                ДБФ.поля.Добавить("IDFIRM","S",100);
                ДБФ.поля.Добавить("IDADDR","S",200);
                ДБФ.поля.Добавить("DELIVD","D",);
                ДБФ.поля.Добавить("DELIVS","S",10);
                ДБФ.поля.Добавить("DELIVPO","S",10);
                ДБФ.поля.Добавить("PRIM","S",200);
                ДБФ.поля.Добавить("IDGOODS","S",100);
                ДБФ.поля.Добавить("QUANT","N",10,2);
                ДБФ.поля.Добавить("PRICE","N",10,2);
                ДБФ.поля.Добавить("NOMZAK","S",30);
                ДБФ.поля.Добавить("DATEZAK","D",);
                ДБФ.поля.Добавить("SELLUNIT","S",100);
                ДБФ.поля.Добавить("DELIVERY","S",1);
                ДБФ.поля.Добавить("IDMEN","S",100);
                ДБФ.поля.Добавить("MTNOMKPK","S",100);
                ДБФ.СоздатьФайл(Константы.ПапкаОбмена.Получить()+"Z"+Номер+".dbf");            
            конецесли;
            ТекПрим=Примечание;
            Если Найти(ТекПрим,"""")<>0 тогда
                ТекПрим=Лев(СтрЗаменить(ТекПрим,Символы.ПС," "),Найти(ТекПрим,"""")-2);
            Конецесли;
            ТЗ=Товары.Выгрузить();
            ТЗ.Колонки.Добавить("КодТов");
            Для каждого тов Из ТЗ Цикл
                тов.КодТов=Тов.товар.Код;
            КонецЦикла;
            ТЗ.Сортировать("КодТов");
            Для каждого СтрТов Из ТЗ Цикл
                ДБФ.Добавить();
                ДБФ.IDBUYER=Клиент.КодСтр;
                ДБФ.IDFIRM=Фирма.КодСтр;
                Если АдресДоставки.НомерАдреса<>"" тогда
                    ДБФ.IDADDR=Строка(СокрЛП(АдресДоставки.НомерАдреса));//Формат(Число(АдресДоставки.НомерАдреса),"ЧГ=0")
                иначе
                    ДБФ.IDADDR=Строка(СокрЛП(АдресДоставки.АдресДоставки));
                КонецЕсли;
                ДБФ.DELIVD=Датадоставки;
                //Если Час(ВремяПО)<>18 тогда
                //    ДБФ.PRIM=ТекПрим+", отгрузка с "+Час(ВремяС)+":"+Минута(ВремяС)+"0 по "+Час(ВремяПО)+":"+Минута(ВремяПО)+"0";
                //иначе
                ДБФ.PRIM=ТекПрим;
                //КонецЕсли;
                Если Час(ВремяПО)<>18 или Час(ВремяС)<>9 тогда
                    ДБФ.DELIVS=Строка(Час(ВремяС))+":"+Строка(Минута(ВремяС));
                    ДБФ.DELIVPO=Строка(Час(ВремяПО))+":"+Строка(Минута(ВремяПО));
                иначе
                    ДБФ.DELIVS="";
                    ДБФ.DELIVPO="";
                КонецЕсли;
                ДБФ.IDGOODS=СтрТов.Товар.КодСтр;
                ДБФ.QUANT=Число(СтрТов.Количество);
                ДБФ.PRICE=Число(СтрТов.Цена);
                ДБФ.NOMZAK=НомерЗаказа;
                
                ДБФ.DATEZAK=ТекущаяДата();
                ДБФ.SELLUNIT= СокрЛП(СтрТов.единица.Единица.КодСтр);
                Если Доставка=Перечисления.Доставка.Доставка тогда
                    ДБФ.DELIVERY=0;
                иначе
                    ДБФ.DELIVERY=1;
                КонецЕсли;
                ДБФ.IDMEN=СокрЛП(ТоргПред.КодСтр);
                Обр = Обработки.МТ_ОбменДанными.Создать();
                
                ДБФ.MTNOMKPK=СокрЛП(Обр.СТ_ЗначениеВСтрокуВнутр(ЭтотОбъект.Ссылка));
                ДБФ.Записать();
            конеццикла;
            ДБФ.ЗакрытьФайл();
            УдалитьФайлы(Константы.ПапкаОбмена.Получить()+"stop");
            //конецесли;
            //        ПереместитьФайл(Константы.ПапкаОбмена.Получить()+"zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".xbf",Константы.ПапкаОбмена.Получить()+"\zak\"+Формат(АдресДоставки.Менеджер.Код, "ЧГ=0")+"\Z"+Номер+".dbf");
        иначеесли Константы.ТипФайловОбмена.Получить()=Перечисления.ТипФайлов.SQL тогда
        конецесли;
        ЭтотОбъект.Выгружена=Истина;
        Записать();
    конецесли;    
конецпроцедуры

Визуально нигде не видно подвоха
Поиском по конфигурации ничего более не находится (есть только один запароленный модуль, но его вызова я не вижу)
К железу вопросов нет, виртуализировали и переносили на другое железо - то же самое

Вот залил скрин DBF-ов, сверху нормальный, остальные два "битые"
http://savepic.ru/12565676.png
Странность - колонка DATEZAK имеет разный тип...

Думаю, может где закладка оставлена прошлыми программистами...?
Или может какое-либо ещё ПО параллельно генерирует DBF, файл, и так случается что они по времени рассинхронизируются....

В общем прошу помощи...
1 VladZ
 
30.12.16
07:47
(0) "одновременно каждая полученная заявка выгружается в файл DBF. " - с какой целью?
2 AlexSTAL
 
30.12.16
07:49
(1) для переноса в 7.7
3 Это_mike
 
30.12.16
08:10
сантехнический центр пятая среда...
они исправили идентификацию заявки по дате-времени?
4 DimVad
 
30.12.16
08:24
(0) Я не изучал внимательно код, но сразу возникла мысль - а зачем его каждый раз создавать ? Лежит Shablob.dbf (пустой), копируется в обработке в УмноеИмя.dbf - и всё, имена полей точно не слетят...

Ну, ещё перед копированием шаблона я бы явно удалял УмноеИмя.dbf, на всякий случай...
5 AlexSTAL
 
30.12.16
08:49
(3) Я только познакомился с данной конторой
(4) Это понятно, что можно сделать стами способами...
Данный способ достался по наследству... Но даже если он и не совсем фэншуйный, работать то он должен безупречно
6 Это_mike
 
30.12.16
08:51
(5) ну поставь логирование типа поля datezak.
может, все-таки калк неправильно определяет тип?
7 Это_mike
 
30.12.16
08:52
+(6) глянь тип в заголовке дбфки каким-нибудь просмотрщиком.
8 AlexSTAL
 
30.12.16
08:53
(6) Размер файлов разный... пробовал в 1С открывать...
9 Это_mike
 
30.12.16
08:56
(8) кстати, а xbf - это что? и какой в них тип поля?
10 Aleksey
 
30.12.16
09:05
(4) так он создается только если файл не найден.

(0) При ручном запуске дбф файл существует или создается заново?
11 VladZ
 
30.12.16
09:05
(0) Все, что делается автоматически должно логироваться. Достаточно писать в текстовый файл. Смысла "гадить" в журнал регистрации 1с нет никакого.

Визуально по коду - вроде все должно работать.

Я бы ловил так: добавил логирование действий программы, собрал статистику работы. Там уже будет видно, в какой момент рождается проблема.

Ну и, все-таки, разложил файлы "по сессиям", а не просто по менеджерам.  Так, на всякий случай...
12 AlexSTAL
 
30.12.16
09:07
(9) Это рудимент какой-то... нет таких файлов
(10) старый удалял ручками, новый создаётся, нужно попробовать не удалять
13 AlexSTAL
 
30.12.16
09:08
(11) да, у меня такие же мысли

а как в 8-ке получить уникальный идентификатор сессии?
14 VladZ
 
30.12.16
09:10
(13) Можешь использовать текущую дату (со временем). Отличный уникальный идентификтор! :)
15 Это_mike
 
30.12.16
09:12
(14) :-)
эти дятлы по дате-времени уже документ идентифицируют...
16 Это_mike
 
30.12.16
09:14
кстати,  не знаю, как сейчас - но "УТП" примерно четырехлетней давности проще было переписать с нуля. Используя систеховскую вики, и файл описаний типов в самой базе...
17 DimVad
 
30.12.16
09:16
(10) "так он создается только если файл не найден. " - ну, получается что иногда он его создаёт не правильно. Т.е. что-то в этом софте срабатывает не правильно при создании dbf, а при записи строк таких проблем нет.

Самый простой способ - уйти от гиморроя. Есть вот созданный на компьютере программиста файл dbf (он его в каком-нибудь FoxPro создал - надёжно, как топор), вот с ним и работаем.

И нам становиться глубоко пофигу в какой версии какого дерьма есть ошибка время от времени мешающая создавать заголовок dbf...
18 Это_mike
 
30.12.16
09:18
(17) так файл не найден почти всегда. ибо почти всегда прилкетают новые заявки.
19 AlexSTAL
 
30.12.16
09:19
(14) Хотелось бы более уникального
(17) Так "софт" состоит из одной процедуры, и всё штатно 1С делается... не должно быть такого!
20 AlexSTAL
 
30.12.16
09:20
(18) При штатной работе файл никогда не должен находиться
Думаю, может параллельные сессии как-то умудряются стартовать, но файл то каким образом может портится...??
21 VladZ
 
30.12.16
09:21
(17) Веселуха начнется тогда, когда этот "шаблон" потеряется:мало того, что работать не будет, так еще и типы полей нужно будет откуда-то восстанавливать.

На мой взгляд: дополнительное звено, понижающее надежность. Программа должна делать все сама в пределах своей "зоны ответственности".
22 DimVad
 
30.12.16
09:22
(19) "не должно быть такого" - можно повторять эту фразу, а можно решить проблему. 1С копировать файл умеет ? Ну, вот пусть и копирует...

p.s. Переписать можно было быстрее, чем эта тема идёт. Выкинут строки создания, вставить 2 строки - удаления файла и копирования файла. Уже бы работал.
23 DimVad
 
30.12.16
09:23
(21) Ну можно записать шаблон в бинарные данные, если есть большое и горячее желание избежать "дополнительного звена"
24 AlexSTAL
 
30.12.16
09:24
(21) согласен
(22) не согласен, что в этом проблема и как-то поможет
25 AlexSTAL
 
30.12.16
09:24
(23) это костыли. Всё должно работать штатно из коробки (я про функции работы 1С с DBF)
26 Это_mike
 
30.12.16
09:25
(23) это практически то же самое, что программное создание...
27 Это_mike
 
30.12.16
09:26
(25) не трахай мозг. логируй все, сто можно. выявишь ситуацию, при которой меняется тип поля - будетт проще
28 AlexSTAL
 
30.12.16
09:41
(27) да пофиг на тип поля.. колонки пропадают...
29 Aleksey
 
30.12.16
09:43
(27) у него не тип меняется, а где то старая версия запускается. Ты посмотри последнюю колонку, там разные имена. Т.е. откуда то прилетает старая версия dbf или кто-то вручную запускает обмен и там старая версия
30 Это_mike
 
30.12.16
09:44
(28) чот не заметил сразу. а может, у тебя не только заявки, но и мерч/возврат прилетает?
31 AlexSTAL
 
30.12.16
10:13
(29) да вот визуально только одна версия базы...
и запускается она только одним скриптом:
    entConn = new ActiveXObject("V83.COMConnector");
    conn = entConn.connect("Srvr=mp163;Ref=UTP;Usr=Админ; Pwd=000000");
    dataproc= conn.DataProcessors.МТ_ОбменДанными.Create();
    dataproc.STMTExchange(codeRoute, exchangeStatus);
32 AlexSTAL
 
30.12.16
10:13
(30) Не... только заявки, проверили 3 раза
33 AlexSTAL
 
10.01.17
13:23
30 декабря добавил логирование, динамически обновил конфигурацию...
Пока полёт нормальный, ни одного случая не произошло...

Вот сижу и думаю, что это было. Вспомнил про кэш, стал сравнивать то что было с тем что есть, изменились:
\Config\*
\SICache\*

может быть там лежал закэшированный модуль? Возможно такое? Но тогда бы наверное оно всегда не верно исполнялось? Или?
Я уже и н знаю на что думать...
34 Aleksey
 
10.01.17
13:27
(33) Ну так руками кто то старую запускает. Он еще не пришел, или небыло необходимости "срочно" запустить обмены, вот и хорошо всё
35 AlexSTAL
 
10.01.17
13:29
(34) руками вряд ли кто может такое делать... база прописана только в отдельном сеансе на терминальном сервере... ни у кого нет доступа
36 Это_mike
 
10.01.17
13:30
(34) или под другим пользователем.
у СОДа систеховского есть настройки запуска - какой батнник запускать
37 Это_mike
 
10.01.17
13:31
(33) прежде чем "на что-то думать" - надо сначала выяснить причину. а она выясняется логированием.
что показало логирование?
38 Aleksey
 
10.01.17
13:35
(37) Так он же написал что с момента запуска логирования ни одного разрыва
39 Это_mike
 
10.01.17
13:36
(38) то ли еще будет...
40 Ёпрст
 
10.01.17
13:38
(0) всё не читал, одно только -  зачем для даты тип строка 100 в дбф ? Че за изврат такой ?
:)
41 Это_mike
 
10.01.17
13:45
(40) так нормальные - пишелся с типом D8. а откуда перется С100 - сам ТС и пытается выяснить
42 AlexSTAL
 
10.01.17
13:49
Опа-на! Опять началось!!! Сейчас напишу подробности...
43 Это_mike
 
10.01.17
13:51
(42) см (39) :-)))
44 AlexSTAL
 
10.01.17
14:00
Я немного изменил код, сделал, что бы первая буква была строчная, не заглавная и вставил строчку, что бы создавался маркерный файл, в котором содержалось бы количество столбцов в ТЗ перед выгрузкой.....

я в шоке: https://yadi.sk/i/r0-75lMN38AztZ
и файл битый создался с заглавной буквы и маркерный файл появился и в маркерном файле верное количество столбцов (16)!!!
45 AlexSTAL
 
10.01.17
14:03
А вот и другая ситуация!!! Файл с большой буквы и нет маркерного файла: https://yadi.sk/i/bShapJjW38B4gr
46 AlexSTAL
 
10.01.17
14:04
По штатному журналу регистрации в этот момент никаких левых сеансов не было, только COM-соединение
47 Это_mike
 
10.01.17
14:06
(46) так ком-соединений может быть много
48 AlexSTAL
 
10.01.17
14:08
(47) Да, много, но код процедуры то один!!!!
То, что приходит на ум - это кэш модулей...
Но тут произошло два разных не связанных глюка...
49 Это_mike
 
10.01.17
14:11
(48) посмотри, откуда запускаются.
какой сод запускается (на разных торговых может запускаться разные репликации. а разнвые репликации могут мало того, что по рахным правилам работать - еще и запускать разные 1ски под разными пользователями.)
50 Это_mike
 
10.01.17
14:12
пиши чонить в лог при старте сеанса обмена, и потом ищи старты процессов без этого чонить...
51 Это_mike
 
10.01.17
14:14
(49) точнее, торговые могут быть настроены на разные СОДы
ну, это у них такой вариант балансировки нагрузки сделан. вместо того, чтоб заставить быстро работать. :-)
52 AlexSTAL
 
10.01.17
14:17
(51) Так база данных то одна, и код выгрузки в DBF по логике один в этой конфигурации...
нет другого кода... точнее он есть, но не известно кем и как запускается...
но и это не катит наверное по первую случаю, когда создался старый файл и маркерный файл одновременно!!!!
53 AlexYa
 
10.01.17
14:23
1. Почисти весь кэш 1С
2. Создай новую обработку. Именно новую, а не копию старой, чтобы ID был другим. Весь код и реквизиты просто скопируй из старой обработки в новую.
3. Старую обработку отключи
4. В Новой обработке придумай что-нибудь уникальное, чтобы она чётко оставляла свой след работы. Например, файл с датой и временем в имени и описание DBF в содержании (количество записей, названия и формат колонок).

--------------------
Возможные причины "полтергейста"
1) Кэш
2) Параллельная работа копии базы 1С с этой обработкой и кривой структурой
3) Ошибка в коде

===============

Если после 1.-4. всё повториться, то останется только 3)
54 Это_mike
 
10.01.17
14:23
(52) я в инопланетян, исправляющих строчные  буквы на прописные, не верю
55 AlexSTAL
 
10.01.17
14:28
(53) Попробую, но я в старой обработке делал уникальный маркерный файл...
(54) я тоже!

о! а может после обработки выполняется ещё какая-либо обработка, которая затирает правильно выгруженный файл!!!???

В COM-соединении можно же выполнить всё что угодно по логике... и внешний код и внешнюю обработку?
но как тогда появился файл, у которого отсутствует маркерный файл???!!!
56 Это_mike
 
10.01.17
14:54
(55) см (47) (49) (51)
заодно в этом сантехническом творении везде, где что-нибудь пишется - воткнуть логирование.
и везде, где есть буква Z.
57 AlexSTAL
 
10.01.17
15:14
(56) Поменял пароль для пользователя, под которым запускается COM-соединение и поменял его в одном файле
Буду ждать ошибки авторизации...

в том то и дело, что буквы "Z" нигде нет... есть только "z"
58 Это_mike
 
10.01.17
15:16
(57) ну хоть отпишись, чем дело кончится. интересно даже.
59 Agent ООЗ
 
10.01.17
15:37
переведи все в текстовые файлы, как в агентоиде и будет работать вечно без гемороя.
60 Это_mike
 
10.01.17
15:39
(59) если б ты видел, как у них организован экспорт из текстовых файлов - ты был бы гораздо менее категоричен...
61 Agent ООЗ
 
10.01.17
15:42
(56) опять про гумно....не разочаровываешь!
кстати, заходил на сайт а+ , а там видос про фаллометрию на главной, а всего 350(!!!!) просмотров за 4 месяца.....посещаемость как у меня однако :)
62 Agent ООЗ
 
10.01.17
15:44
штат 60 сотрудников, а видосы про "корпоративную жизнь" имеют 10 просмотров...походу у 50 сотрудников нет доступа к компьютерам :)
вопчем веселье там в полном разгаре.
63 Это_mike
 
10.01.17
15:44
(61) ну, 5 середа - это даже хужее тебя.
а систех, кстати, достаточно интересен. правда, имхо, несколько заморочен.
64 Это_mike
 
10.01.17
15:46
(62) ну дык все, кто хотел автоматизироваться - уже автоматизировались.
Давно с ними не связывался, при случае пообщаюсь, поспрошаю - чем они сейчас занимаются. но чую я, что они сейчас чойнить на мобильном приложении ваяют...
65 Agent ООЗ
 
10.01.17
15:46
(63) я клевый, систех в контексной рекламе писал, что удобно как в агентоиде!
66 Agent ООЗ
 
10.01.17
15:48
копейки шкуляют за доступ к лицензированию с тех, кто не знает про "бесплатную" версию а+
67 Это_mike
 
10.01.17
15:49
(66) ну, зато зарабатывают, наверное.
но всяко лучше, чем "я сегодня тут, а завтра улетел с девочками под пальмы"
68 Agent ООЗ
 
10.01.17
15:57
про девочек, звонила тут одна с пальмиры, спрашивала жив ли я, а то у них 600 агентов скучают, может и на пальмы заработаем.
69 Это_mike
 
10.01.17
15:58
(68) ну-ну... попытка номер четыре? :-)
70 Это_mike
 
11.01.17
13:24
ну как там?