+7 499 990-10-21

Обмен с УТ 11

Re: Обмен с УТ 11

Сообщение Бродяга_Джон » 07 авг 2013, 10:29

ээээээм, косяк однако
сейчас сидел проверял обработку в демо версии конфигурации УТ 11.1.2.9 и не проверив пути файлов справочника и флага справочника нажал выгрузить справочник, и!?!? он сказал что всё выгружено :-)))
на компе всего C, D и E(сидюк), а пути были прописаны в каталог на W

Ещё моменты:
при выгрузке "по накладной перемещения в режиме добавления остатков" при открытии окна подбора накладных перемещения надобно сделать отбор где склад-отправитель или склад-получатель = Касса ККМ с закладки настроек (чтоб случайно чужое не захватить)

и можно в этом же режиме выгрузки вывести в табличный документ список накладных перемещения что были подобраны для выгузки после формирования файла goods?

и ещё пока не вникал в момент один, обратное перемещение (возврат) с магазина как обрабатывается? для правильности цен (особенно для случая когда возвращается и отгружается одна и таже позиция (ну допустим возврат брака из старой партии, а отгружается уже из новой партии по другой цене)должно сперва вернуться с магазина, а потом уйти на магазин, иначе цены на ДК будут не верными
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Обмен с УТ 11

Сообщение Alexander » 08 авг 2013, 11:40

Добавили сообщение о невозможности записать данные в файл.
Добавили проверку склада, указанного в правиле обмена в выбранном документе перемещения.
Добавили выгрузку количества товаров с минусом, в случае, если склад, указанный в правиле обмена, является складом-отправителем в выбранном документе перемещения.
Вложения
ДЭНСИ_КАССА.zip
(27.67 КБ) Скачиваний: 334
Alexander
 
Постов: 4959
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Обмен с УТ 11

Сообщение Бродяга_Джон » 08 авг 2013, 14:09

Попутно:
Код: Выделить всё
&НаСервере
Процедура Пауза(Сек)

можно заменить на
Код: Выделить всё
&НаСервереБезКонтекста
Процедура Пауза(Сек)

ибо никакой формы нет

и
Код: Выделить всё
&НаСервере
Функция ЗагрузитьОтчет(ТипОтчета, ДатаС = Неопределено, ДатаПо = Неопределено)

наверное тоже можно заменить на
Код: Выделить всё
&НаСервереБезКонтекста
Функция ЗагрузитьОтчет(ТипОтчета, ДатаС = Неопределено, ДатаПо = Неопределено)

(достоверно пока не проверил, сегодня вечером буду этот момент дома тестировать)

с
&НаСервере
Функция СоздатьОтчетОПродажах(ТабОтчета, ДатаОтчета, ТекСмена, ТабОплатБезналом)

фокус не пройдёт :-) там формируется документ
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Обмен с УТ 11

Сообщение Бродяга_Джон » 08 авг 2013, 14:19

Код: Выделить всё
   Режим = 0;
   Если ПоДокументу.СкладПолучатель = ПравилоОбмена.Склад Тогда
      Режим = 1; // добавляем остатки
   КонецЕсли;   
   Если ПоДокументу.СкладОтправитель = ПравилоОбмена.Склад Тогда
      Режим = -1; // вычитаем остатки
   КонецЕсли;   
   Если Режим = 0 Тогда
      Сообщить("Указанный в правиле обмена склад не участвует в выбранном перемещении...");
      Возврат Неопределено;
   КонецЕсли;


можно заменить на
Код: Выделить всё
   
   Если ПоДокументу.СкладПолучатель = ПравилоОбмена.Склад Тогда
      Режим = 1; // добавляем остатки
   ИначеЕсли ПоДокументу.СкладОтправитель = ПравилоОбмена.Склад Тогда
      Режим = -1; // вычитаем остатки
   Иначе   
      Сообщить("Указанный в правиле обмена склад не участвует в выбранном перемещении...");
      Возврат Неопределено;
   КонецЕсли;
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Обмен с УТ 11

Сообщение Бродяга_Джон » 08 авг 2013, 14:34

для чего формировать две строки в ТаблицеТоваров?
если товар не весовой получим в таблице две строки
Код: Выделить всё
Ложь
Ложь

если весовой - две строки
Код: Выделить всё
Ложь
Истина


Код: Выделить всё
      НоваяСТрока.Весовой = Ложь;
      Если Строка.Упаковка.ЕдиницаИзмерения.ТипЕдиницыИзмерения = Перечисления.ТипыЕдиницИзмерения.Весовая Тогда
         НоваяСТрока.Весовой = Истина;
      КонецЕсли;   

менять на
Код: Выделить всё
      Если Строка.Упаковка.ЕдиницаИзмерения.ТипЕдиницыИзмерения = Перечисления.ТипыЕдиницИзмерения.Весовая Тогда
         НоваяСТрока.Весовой = Истина;
      Иначе   
      НоваяСТрока.Весовой = Ложь;
      КонецЕсли;   
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Обмен с УТ 11

Сообщение Бродяга_Джон » 08 авг 2013, 14:41

и вот эти многоточечные конструкции тоже не нужны, это ещё с 7.х идёт
всё что больше чем одну точку требует обращение у ИБ, а тут это в цикле ещё, куча лишних телодвижений
Код: Выделить всё
Если Строка.Упаковка.ЕдиницаИзмерения.ТипЕдиницыИзмерения = Перечисления.ТипыЕдиницИзмерения.Весовая

Максимум через одну точку надо

например
ввести переменную
мВесовой и присвоить ей Перечисления.ТипыЕдиницИзмерения.Весовая
Код: Выделить всё
мВесовой=Перечисления.ТипыЕдиницИзмерения.Весовая

и сравнивать потом с этой переменной
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Обмен с УТ 11

Сообщение Бродяга_Джон » 06 сен 2013, 20:23

Чуток код изменил при обработке транзакции № 17
приязался к связке "код + № чека + № смены"
Код: Выделить всё
                  СтруктураПоиска           = Новый Структура("Код, НомерЧека, ДатаВремяТранзакции");
                  СтруктураПоиска.Код       = Код;
                  СтруктураПоиска.НомерЧека = НомерЧека;
                  СтруктураПоиска.ДатаВремяТранзакции  = ДатаВремяТранзакции;
                  Товар                      = Чеки.НайтиСтроки(СтруктураПоиска);
                  Если Товар.Количество() > 0 Тогда
                     Товар = Товар[Товар.Количество() - 1];
                     Если Товар.Сумма > 0 Тогда
                        Товар.Сумма = Товар.Сумма - Сумма;
                     Иначе
                        Товар.Сумма = Товар.Сумма + Сумма;
                     КонецЕсли;
                     Товар.СкидкаПозиции = 1;
                  Иначе
                  КонецЕсли;


на
Код: Выделить всё
         СтруктураПоиска           = Новый Структура();
         СтруктураПоиска.Вставить("Код", Код);
         СтруктураПоиска.Вставить("НомерЧека",НомерЧека);
         СтруктураПоиска.Вставить("Смена",Смена);
         //СтруктураПоиска.Вставить("НомерККМ",Строка(НомерККМ));
         Товарчик   = Чеки.НайтиСтроки(СтруктураПоиска);
         Если Товарчик.Количество() > 0 Тогда
            Товарчик = Товарчик[Товарчик.Количество() - 1];
            Если Товарчик.Сумма > 0 Тогда
               Товарчик.Сумма = Товарчик.Сумма - Сумма;
            Иначе
               Товарчик.Сумма = Товарчик.Сумма + Сумма;
            КонецЕсли;
                        Товарчик.СкидкаПозиции = 1;
         Иначе
         КонецЕсли;

а то если в один день две смены, то не прокатит просто по связке "номер чека + дата"

аналогично для прочих кроме 15/17, т.е. 16/18, 35/35, 36/38

также попутно вопрос по 17 транзакции
как быть если подряд идут две транзакции №17?
по текущему примется последняя.
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Обмен с УТ 11

Сообщение Alexander » 09 сен 2013, 12:34

Скорее всего имеет смысл вообще привязаться к полю №13 в транзакции с типом 11 (итоговая сумма позиции с учетом скидок на позиции и чек по правилам объединения, установленным на кассе).
Иначе придется в обработке вводить кучу настроек по поводу комбинирования скидок (максимальная/объединять/суммировать, распространять ли скидку на чек на позиции со скидками и т.п.)
Кстати и обработка существенно упрощается - 17 транзакцию фактически можно игнорировать, а в 37 учитывать только информацию по карте, и не распределять скидку на чек по позициям.
Alexander
 
Постов: 4959
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Обмен с УТ 11

Сообщение Бродяга_Джон » 09 сен 2013, 13:16

Alexander писал(а):Скорее всего имеет смысл вообще привязаться к полю №13 в транзакции с типом 11 (итоговая сумма позиции с учетом скидок на позиции и чек по правилам объединения, установленным на кассе).
Иначе придется в обработке вводить кучу настроек по поводу комбинирования скидок (максимальная/объединять/суммировать, распространять ли скидку на чек на позиции со скидками и т.п.)
Кстати и обработка существенно упрощается - 17 транзакцию фактически можно игнорировать, а в 37 учитывать только информацию по карте, и не распределять скидку на чек по позициям.

ну это для протокола Дэнси, а для остальных?

в вашем варианте для Атол-а:
поле №10 Цена товара
поле №12 - Сумма с округлением и без скидок/надбавок

а в оригинале у него еще есть поля для 11/12 транзакции
№10 Цена товара
№12 Сумма товара + сумма округления в базовой валюте
+
№15 - Цена с округлением и скидками
№16 - Сумма товара + сумма округления + сумма скидок в базовой валюте
№20 - Сумма товара в базовой валюте

PS
по этой причине в обработке из конфы в УТ видимо и игнорируются 17 и 37 (и подобные) транзакции
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Обмен с УТ 11

Сообщение Alexander » 09 сен 2013, 13:35

Бродяга_Джон писал(а):ну это для протокола Дэнси, а для остальных?

Ну так и обработка в формате ДЭНСИ.
Обработки в других форматах для УТ11 мы же не корректируем :)
Alexander
 
Постов: 4959
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Пред.След.

Вернуться в Интеграция с различным товароучетным ПО

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


cron

Кто сейчас на конференции

Сейчас посетителей на конференции: 5, из них зарегистрированных: 0, скрытых: 0 и гостей: 5 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (180) здесь было 29 апр 2024, 13:15

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5