Имя: Пароль:
1C
1С v8
Не могу загрузить отчет о закрытии смены из Frontola 5 в 1С Розница 2.2.7.42.
0 JonSilver
 
12.04.18
14:47
Доброго всем времени суток!
Не могу загрузить отчет о закрытии смены из Frontola 5 в 1С Розница 2.2.7.42. Вылетает сообщение об ошибке: "Поле объекта не обнаружено(Тип)".
Есть 2 предположения:
1. неправильно настроен обмен с Frontol 5
2. ошибка релиза
Если у кого данная связка уже работала до последнего релиза, подскажите, где искать причину ошибки?
1 Cool_Profi
 
12.04.18
14:52
В отладчик заглянуть - не предлагать?
2 JonSilver
 
12.04.18
15:06
В отладчике: Поле объекта не обнаружено (Тип).
// Раскладываем транзакцию на поля.
            Если ЗаполнитьТранзакцию(СтрЗаменить(Строка, ";", Символы.ПС), Транзакция, ФорматОбмена, ТекстОшибки) Тогда
                
                Если Транзакция.Тип = 2 ИЛИ Транзакция.Тип = 12 Тогда
3 JonSilver
 
12.04.18
15:25
Вот кусок обработчика вызываемой функции:
// Тип транзакции.
Транзакция.Вставить("Тип", Число(СтрПолучитьСтроку(Строка, 4)));
Выражение: Число(СтрПолучитьСтроку(Строка, 4))
Значение: {(1)}: Преобразование значения к типу Число не может быть выполнено
Обрабатываемая строка выгрузки (sales.txt):
134;4/11/2018;5:12:10 PM;64;1;22;1;;1;158;0;158;9;2;0;0;0;;;158;;0;8;0;0;14/21/1;1;;;;;;;0;0 - Ошибок нет,0 - Ошибок нет,0 - Ошибок нет;;;;;;;;;
4 JonSilver
 
12.04.18
15:28
Должна-ли быть такая строка в выгрузке:
134;4/11/2018;5:12:10 PM;64;1;22;1;;1;158;0;158;9;2;0;0;0;;;158;;0;8;0;0;14/21/1;1;;;;;;;0;0 - Ошибок нет,0 - Ошибок нет,0 - Ошибок нет;;;;;;;;;

Такое впечатление, что в нужной позиции не то значение для обработки.
5 Shrike
 
12.04.18
15:39
Проверь в настройках торгового оборудования модель или протокол, не помню точно.
6 Shrike
 
12.04.18
15:42
(4) Пытается преобразовать пустое значение между ;; в число
7 JonSilver
 
12.04.18
15:57
Тип оборудования: ККМ Offline
Драйвер оборудования: АТОЛ:ККМ Offline
Формат обмена: Frontol 5
8 JonSilver
 
12.04.18
16:00
Версия с релизом не подтвердилась(((. В 2.2.5.27 та же история.
9 Shrike
 
12.04.18
16:02
А касса в каком формате выгружает?
10 JonSilver
 
12.04.18
16:17
(9) Текстовый. (6) Вычисляет позиции строки 4 и 6. "64" и "22" соответственно.
В отладчике начал рассчитывать значения (может не умею пользоваться).
Но в приемнике (2) "Транзакция.Тип" не видит(((.
11 Йохохо
 
12.04.18
16:25
(10) так какая ошибка? не видит тип или ошибка в (3)? 22 это вроде возврат
12 Shrike
 
12.04.18
16:25
(9) Понятно, что текстовый. Здесь, скорее всего, несоответствие форматов обмена. Т.е. касса выгружает, например по штриховскому протоколу, а 1С пытается загрузить по атоловскому.
13 JonSilver
 
12.04.18
16:34
(11) Вот сообщение об ошибке:
{ОбщийМодуль.ПодключаемоеОборудованиеАтолККМOfflineКлиент.Модуль(1410)}: Поле объекта не обнаружено (Тип)
                Если Транзакция.Тип = 2 ИЛИ Транзакция.Тип = 12 Тогда. (12) Опыта нет определить формат. Подключал другой спец, номенклатуру в кассу загрузил, смену открыл, чеки пробил и закрыл смену. Выгрузил и......а тут сам разбирайся со своей 1С, чо она у тобе отчет не грузит))).
14 JonSilver
 
12.04.18
16:37
Фронтол 5.22.1 от 7.03.2018 года
15 Сияющий в темноте
 
12.04.18
19:45
А дата время в таком убогом формате и должны быть,у атола в примере дд.мм.гггг и чч:мм:сс,без всяких добавок,вполне возможно,что собака в этом
16 JonSilver
 
13.04.18
11:31
(15) Спасибо за вариант, будем пытать
17 JonSilver
 
13.04.18
11:46
В отладчике посмотрю значение на выходе.
Но жалуется 1С почему-то на 4 позицию (;64;), вернее отсутствие в массиве поля содержащее данное значение.
И вот, в модуле такой тип транзакции (64) не описан.
18 JonSilver
 
15.04.18
14:53
Всем спасибо за помощь, разобрался. (15) Действительно, обработка при получении значения и строки натыкалась на неизвестный символ и происходил возврат в процедуру (ошибка обработки). Именно на дате и времени, а "Транзакция.Тип" идет следующим полем. Вот оно и не попадало в массив.
19 JonSilver
 
15.04.18
15:55
Вот кусок переписанного кода, если кому понадобится. Функция ЗаполнитьТранзакцию:
// Номер транзакции.
        Транзакция.Вставить("Номер", Число(СтрПолучитьСтроку(Строка, 1)));
        
        ПолеОшибки = НСтр("ru='Дата и время транзакции (2,3)'");
        
        ДатаТр = СтрПолучитьСтроку(Строка, 2); ВремяТр = СтрПолучитьСтроку(Строка, 3);
        
        Если СтрНайти(ДатаТр,"/")>0 Тогда
            ДатаТранзакции = СтрЗаменить(ДатаТр, "/", Символы.ПС);
        ИначеЕсли СтрНайти(ДатаТр,"/")>0 Тогда
            ДатаТранзакции = СтрЗаменить(ДатаТр, ".", Символы.ПС);
        КонецЕсли;
        
        ПервРазд = СтрНайти(ВремяТр, ":");
        Если СтрНайти(ВремяТр, " PM")>0 Тогда
            ВремяТр = Строка(Число(Лев(ВремяТР,ПервРазд-1))+12)+ Прав(ВремяТр,9);
            ВремяТР = СтрЗаменить(ВремяТр," PM","");            
        ИначеЕсли СтрНайти(ВремяТр, " AM")>0 Тогда
            ВремяТР = СтрЗаменить(ВремяТр," AM","");            
        КонецЕсли;
        
        ВремяТранзакции = СтрЗаменить(ВремяТр, ":", Символы.ПС);
        
        // Дата и время транзакции.
20 JonSilver
 
15.04.18
15:57
Только обратил внимание, возникла другая проблема: отчет грузится 2 раза. Думаю что моя переписка не должна была повлиять))).
21 JonSilver
 
15.04.18
16:10
(20) Решено