gifts2017

Формирование печати чека ККМ и Z - отчета по нескольким отделам магазина одновременно

Опубликовал Владимир Степанян (rsvp201) в раздел Программирование - Практика программирования

Статья на тему: как сделать так, чтобы из 1С Розницы (Розница Магазин Автозапчастей, Розница Магазин обуви и одежды)  можно было распечатать ЧекККМ на несколько отделов.

Данная потребность возникла у одного из моих клиентов при внедрении "1С:Розница магазин автозапчастей 8.1" - клиент захотел увидеть, сколько выручки проходит по каждому из отделов магазина (в магазине было 7 отделов).

А теперь, собственно, что необходимо сделать:

  1. Необходимо добавить числовой реквизит (я его назвал номер секции) в справочнике "Склады", и вывести его на форму элемента справочника. После заполнить данный реквизит уже на стороне 1С:Предприятие числовыми данными от 0.... до N (по числу складов).
  2. Необходимо в настройках кассы через тест драйвера ФР (у каждой кассы индивидуально, см. документацию по кассе) добавить отделы, в том же порядке, что вводили предыдущем пункте, то есть, номер секции склада должен совпасть с номером отдела, который добавляем в тесте драйвера.
  3. В модуле объекта ЧекаККМ необходимо найти функцию

Функция ПровестиИРаспечататьЧек(Ответ, Отказ, ФормаДокумента, ПечатьПакетаДокументовВозврат = Ложь, РучнойРежимПечати = Ложь) Экспорт

// Необходимо сразу перейти к строке 1236, после условии "иначе" должна идти текст запроса,  его комментируем

        //Запрос = Новый Запрос(
        //"ВЫБРАТЬ
        //|    ТчТовары.Номенклатура.Представление КАК Номенклатура,
        //|    ТчТовары.ХарактеристикаНоменклатуры.Представление КАК ХарактеристикаНоменклатуры,
        //|    ТчТовары.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
        //|    ТчТовары.Цена КАК Цена,
        //|    ТчТовары.Количество КАК Количество,
        //|    ВЫБОР
        //|        КОГДА ТчТовары.Цена * ТчТовары.Количество = 0
        //|            ТОГДА 0
        //|        ИНАЧЕ (1 - ТчТовары.Сумма / (ТчТовары.Цена * ТчТовары.Количество)) * 100
        //|    КОНЕЦ КАК ПроцентСкидкиНаценки,
        //|    ТчТовары.СтавкаНДС,
        //|    ТчТовары.СуммаНДС
        //|ИЗ
        //|    Документ.ЧекККМ.Товары КАК ТчТовары
        //|ГДЕ
        //|    ТчТовары.Ссылка = &Ссылка");

// Вместо данного запроса добавляем новый запрос

        Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |    ТчТовары.Номенклатура.Представление КАК Номенклатура,
        |    ТчТовары.ХарактеристикаНоменклатуры.Представление КАК ХарактеристикаНоменклатуры,
        |    ТчТовары.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
        |    ТчТовары.Цена КАК Цена,
        |    ТчТовары.Количество КАК Количество,
        |    ВЫБОР
        |        КОГДА ТчТовары.Цена * ТчТовары.Количество = 0
        |            ТОГДА 0
        |        ИНАЧЕ (1 - ТчТовары.Сумма / (ТчТовары.Цена * ТчТовары.Количество)) * 100
        |    КОНЕЦ КАК ПроцентСкидкиНаценки,
        |    ТчТовары.СтавкаНДС,
        |    ТчТовары.СуммаНДС,
        |    ТчТовары.Склад.НомерСекции КАК НомерСекции
        |ИЗ
        |    Документ.ЧекККМ.Товары КАК ТчТовары
        |ГДЕ
        |    ТчТовары.Ссылка = &Ссылка");

 

И все! В принципе, если все правильно сделали, то тогда все должно работать.

Желаю всем удачи! Буду рад, если моя статья кому-то поможет.

См. также

Подписаться Добавить вознаграждение

Комментарии

2. Dmitriy Kuklin (amadeus2011) 04.11.13 12:34
Насколько я понял номер секции в складе указывается только если устанавливаете конфигурацию в точках розничной продажи?
3. Владимир Степанян (rsvp201) 20.01.14 00:31
Да все правильно вы думайте
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа