Имя: Пароль:
1C
1С v8
ТоварыНаККМ и КодыВесовогоТовара
0 Gena1984
 
17.11.12
08:45
Помогите пожалуйста разобраться с принципом работы этих регистров. КА 1.1 В регистре Товары на ККМ коды равны коду товара (так автоматом заполнился и это правильно) в Регистре Коды весового товара коды (PLU) заполнились по порядку(и это тоже правильно), но при загрузке в конце дня отчета о розничных продажах обработка не видит весовой товар пока не поменяешь в регистре Коды весового товара код(PLU) на код товара. В чем прикол? Что не так?
1 ICWiner
 
17.11.12
09:08
Там в настройках где-то была хрень, типа выгружать в качестве PLU коды или по порядковым номерам. Попробуй сменить что ле настроичку...
2 Gena1984
 
17.11.12
09:18
Настройка, то есть, только мне нужно товары на ККМ заполнять по коду товара, а Коды весового товара по порядку. Коды весового товара и так по порядку заполняются, только тогда загрузка отчета ККМ не работает.
3 ICWiner
 
17.11.12
09:28
Отладчиком глядел что там при загрузке происходит? Как он пытается номенклатуру с кодом соотносить?
4 Gena1984
 
17.11.12
09:29
Рассказываю весь принцип. Мы переходим на 8.2 КА с 7.7 ТиС Есть 3 кассы и 6 весов. PLU в кассе присвоены по коду и совпадают с кодами регистра Товары на ККМ я просто заполняю этот регистр автоматом и все. Регистр Коды весового товара заполняется автоматом по порядку номеров вне зависимости от кода товара. Память весов в итоге мне придется очищать и загружать туда товар заново. Но при загрузке отчета  о розничных продажах не загружается весовой товар. Не пойму, что делаю не так.
5 ICWiner
 
17.11.12
09:31
Как называется обработка, которая загружает ОРП?
6 Gena1984
 
17.11.12
09:32
Закрытие кассовой смены
7 ICWiner
 
17.11.12
09:32
Она ж только чеки, вроде, собирает в КА. Сейчас гляну
8 Gena1984
 
17.11.12
09:33
Не, она как раз отчет формирует.
9 ICWiner
 
17.11.12
09:35
Ну да, делает орп из чеков за день по кассе.
10 Gena1984
 
17.11.12
09:37
Правильно. Только почему он к регистру Коды весового товара обращается? И обращается по коду товара, а там номер по порядку. И все. Весовой в ОРП не попадает.
11 ICWiner
 
17.11.12
09:43
В обработке ЗакрытияКассовойСмене нет ни одного обращения к РС КодыВесовогоТовара. В обработке сервер ТО к этому регистру обращаются тоглько при поиске по штрихкоду. Таки проблема, я думаю, не в закрытиеКС, а в том что не сформированы нормально чеки. Закрытию-то пофиг, он просто собирает все годные чеки за день. При считывание ШК по этому весовому товару чек ккм нормально заполняется?
12 Gena1984
 
17.11.12
09:52
Нормально. Никак не могу понять взаимосвязь. Этой обработки и кода весового товара. Приведу пример.

Чек   615812/000000 21.03.11 12:04:56 1       379.05 000000 Кассир #1          
2951919             0.298      77.33      77.33 0000000000 000000    0.00% 0000000000000

Вот строка текста из файла чеков. При установке в регистре Коды весового товара номера по порядку при загрузке этого чека выскакивает ошибка, что товар не найден. Если не номер по порядку, а код товара, тогда все находит. Как это работает не пойму.
13 ICWiner
 
17.11.12
10:04
А чеки чем загружаешь? Неужто закрытие кассовой смены их сама из файла подтягивает? И файл чем формируется? Там что-то та фронте отдельное стоит, а КА - это бэк офис?
14 Gena1984
 
17.11.12
10:07
ККМ off-line находится в локальной сети. Касса сама формирует эти файлы, а оператор обработкой закрытие кассовой смены эти файлы загружает в 1с. Пока в 7.7, но след. неделе планируем на 8.2 перейти. А тут такой затык.
15 ICWiner
 
17.11.12
10:10
Воот, это и хотел услышать. ККМ офлайн значит. В ТО сервере посмотри что происходит в функции ЗагрузитьОтчетОПродажах, точку остановки там бахни. Там есть такой код:


Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);

   Если НЕ ЗначениеЗаполнено(Результат) Тогда
       Отчет      = Новый ТаблицаЗначений();

       Отчет.Колонки.Добавить("Номенклатура");
       Отчет.Колонки.Добавить("ЕдиницаИзмерения");
       Отчет.Колонки.Добавить("ХарактеристикаНоменклатуры");
       Отчет.Колонки.Добавить("СерияНоменклатуры");
       Отчет.Колонки.Добавить("Качество");
       Отчет.Колонки.Добавить("Количество");
       Отчет.Колонки.Добавить("Цена");
       Отчет.Колонки.Добавить("Сумма");

       НомерЧека       = Неопределено;
       НомерСмены      = Неопределено;
       ВремОтчет       = Неопределено;
       СтрокаОтчета    = Неопределено;
       Результат       = Обработка.ЗагрузитьОтчет(Объект, ВремОтчет);
       Если НЕ ЗначениеЗаполнено(Результат) Тогда
           Запрос = Новый Запрос(
           "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
           |    РегТО.КассаККМ
           |ИЗ
           |    РегистрСведений.ТорговоеОборудование КАК РегТО
           |ГДЕ
           |    РегТО.Идентификатор = &Идентификатор");
           Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
           КассаККМ = Запрос.Выполнить().Выгрузить()[0].КассаККМ;
           Позиция = Неопределено;
           Для каждого Позиция Из ВремОтчет Цикл
               ОписаниеПозиции = РаботаСТорговымОборудованием.ПолучитьОписаниеТовараККМ(КассаККМ, Позиция.ПЛУ);
16 ICWiner
 
17.11.12
10:10
Тебя должна интересовать последняя строчка

ОписаниеПозиции = РаботаСТорговымОборудованием.ПолучитьОписаниеТовараККМ(КассаККМ, Позиция.ПЛУ);
17 ICWiner
 
17.11.12
10:11
Там отсылка к следующей функции, где и идет запрос по ПЛУ


Результат = Неопределено;

   Запрос = Новый Запрос(
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
   |    РегТовары.Номенклатура                КАК Номенклатура,
   |    РегТовары.ЕдиницаИзмерения            КАК ЕдиницаИзмерения,
   |    РегТовары.ХарактеристикаНоменклатуры  КАК ХарактеристикаНоменклатуры,
   |    РегТовары.СерияНоменклатуры           КАК СерияНоменклатуры
   |ИЗ
   |    РегистрСведений.ТоварыНаККМ КАК РегТовары
   |ГДЕ
   |    РегТовары.КассаККМ = &КассаККМ
   |    И РегТовары.Код    = &ПЛУ");
   Запрос.УстановитьПараметр("КассаККМ", КассаККМ);
   Запрос.УстановитьПараметр("ПЛУ",      ПЛУ);
   РезультатЗапроса = Запрос.Выполнить();
   Если Не РезультатЗапроса.Пустой() Тогда
       Результат = Новый Структура(
                             "Качество, Номенклатура, ЕдиницаИзмерения, ХарактеристикаНоменклатуры, СерияНоменклатуры",
                             Справочники.Качество.Новый);
       Выборка = РезультатЗапроса.Выбрать();
       Выборка.Следующий();
       ЗаполнитьЗначенияСвойств(Результат, Выборка);
   КонецЕсли;

   Возврат Результат;
18 Gena1984
 
17.11.12
10:12
Ща гляну.
19 ICWiner
 
17.11.12
10:12
Поставь точку остановки в модуле ТО, посмотри что там за временный отчет загружается - норм или нет. Если норм, то уже точку остановки в общем модуле РаботаСТорговымОборудованием
20 ICWiner
 
17.11.12
10:13
Там определяется товар по плу в запросе(17)
21 Gena1984
 
17.11.12
10:33
Если НЕ ПоискПоШтрихкоду(_Штрихкод, пТовар, пЕдиница,  Весовой, пКачество, пХаракНоменклатуры, пСерияНоменклатуры) Тогда
                       // не нашли
                       СООБЩИТЬ("Не найден товар по штрихкоду "+_Штрихкод+" ! Строка в файле "+ Индекс,СтатусСообщения.Внимание);
                       Продолжить;       //
                   КонецЕсли;    
                   
                   Если Не ПолучитьПЛУТовараККМ(КассаККМ, птовар, пЕдиница, КодПЛУ)  Тогда
                       // не нашли
                       СООБЩИТЬ("Не найден ПЛУ товара  штрихкод "+_Штрихкод+" ! Строка в файле "+ Индекс,СтатусСообщения.Внимание);
                       Продолжить;       //
                   КонецЕсли;
Вот это место. В функции ПоискПоШтрихкоду ищет ШК если весовой, то регистру Коды весового товара, если нет по регистру Товары на ККМ. Ищет этот номер 2951919 и не находит, потому что в регистре коды весового товара коды по порядку, а 2951919 это код товара (51919) с префиксом. И все, вылетает.
22 Gena1984
 
17.11.12
10:40
Может попробовать отключить этот кусок.
23 ICWiner
 
17.11.12
10:42
Ну проблемное место найдено, там накодить - пару минут делов.
24 Gena1984
 
17.11.12
10:49
Накодить то не долго. Интересно другое. Где ошибка? У 1С или у меня? Или нет никакой ошибки, а просто в кассе не те коды весового товара хранятся?
25 ICWiner
 
17.11.12
11:04
Дело в настройках, по идее. Что мешает поставить, чтоб коды выгружались не по порядку, а по коду?
26 Gena1984
 
17.11.12
11:09
Так вот в этом то и дело. Опять нужно переписывать. Потому что регистр Коды весового товара заполняется только по порядку и ни как иначе. По модулю посмотрел. Вот в чем весь секрет.