Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 окт 2024, 17:22

1С 7.7 ТиС и касса

Автор Radost, 09 дек 2010, 12:00

0 Пользователей и 1 гость просматривают эту тему.

Radost

Есть маленький магазин. хочу реализовать возможность использования дисконтных карт ( у каждой индивид номер). Чтобы эти данные про скидку и сумму можно было на кассу как номенклатуру закидывать и из кассы соответственно выбирать.
Сейчас есть просто дисконты со скидками 3 и 5 %%. на кассе их считывают и в 1с передается уже скидка. Кто это делал мне не известно, продавцы говорят давно а я в магазине только 3 месяца.
Вообще данные с кассы считыываются в текстовый файлик. И я вот не могу понять как они потом 1с распознаются и найти тоже не могу.
Текстовый файл выглядит примерно так

12136;03.12.2010;15:49:48; 11;1;284;1;         3516;1; 7900.00; 1.000;7900.00;
12137;03.12.2010;15:49:48; 37;1;284;1;             ;0;    0.00;10.000; 790.00;
12138;03.12.2010;15:49:48; 71;1;284;1;2400000010265;3; 7900.00;10.000; 790.00;
12139;03.12.2010;15:49:48; 40;1;284;1;             ;0;    0.00; 1.000;7110.00;
12140;03.12.2010;15:49:48; 55;1;284;1;             ;0;    0.00; 0.000;7110.00;
Это одна операция
2400000010265 - как раз номер дисконта который на кассе считывается, а 10.000 - скидка по нему.
3516 - код товара в номенклатуре.

В 1с 7.7 в обработке "Закрытие Кассовой Смены" нашла вот такой кусок:
Функция СформироватьСоставOffline(ТаблРеквизитов, ОписаниеРезультата, Сообщение = "")
   
   Перем НомерЛенты, ДанныеИзККМ;
   
   Рез = глККМЗакрытьСмену(ВыбКасса, ВыбСклад.НомерСекции, ДанныеИзККМ, ОписаниеРезультата, Сообщение, ВыбДата);
   
   Если Рез = 1 Тогда
      СпрЕдиницы = СоздатьОбъект("Справочник.Единицы");
      СпрТовары  = СоздатьОбъект("Справочник.Номенклатура");
      
      ТаблРеквизитов   = СоздатьОбъект("ТаблицаЗначений");
      ТаблРеквизитов.НоваяКолонка("Товар");
      ТаблРеквизитов.НоваяКолонка("Количество");
      ТаблРеквизитов.НоваяКолонка("Единица");
      ТаблРеквизитов.НоваяКолонка("Цена");
      ТаблРеквизитов.НоваяКолонка("Сумма");
      
       ДанныеИзККМ.ВыбратьСтроки();
      Пока ДанныеИзККМ.ПолучитьСтроку() = 1 Цикл

А потом еще
   Если НЕ((ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР) и (СписокЧеков.РазмерСписка() = 0)) Тогда
          // Теперь создадим новый документ ОтчетККМ
         ДокОКС = СоздатьОбъект("Документ.ОтчетККМ");
         ДокОКС.Новый();
         глЗаполнитьШапку(ДокОКС, 0);
.................
   ДокОКС.НоваяСтрока();
            ДокОКС.Номенклатура = ТаблРеквизитов.Товар;
            ДокОКС.Количество   = ТаблРеквизитов.Количество;
            ДокОКС.Единица      = ТаблРеквизитов.Единица;
            ДокОКС.Коэффициент  = 1;
            ДокОКС.Цена         = ТаблРеквизитов.Цена;
            ДокОКС.Сумма        = ТаблРеквизитов.Сумма;
            
            СуммаБезНП = ДокОКС.Сумма;
            

Я как думаю. Если я научусь вытаскивать номер этого дисконта в отчет ккм например то хотя бы в одну сторону скидки будут работать а потом останется только доработать прогу кассы чтоб она эту инфу по клиентам загружала (штрих дисконта, сумма скидки).

Или я что-то не так смотрю? Или я что-то не так делаю?
Обратилась в какую-то местную фирму те говорят вам только на 8 переходить. но как бы на это никто из руководства не пойдет.
Буду благодарна за любую помощь

prog1c7.7

нэ нада восэмь, сэмь нада, абработку хачу (всмысле вытащи обработку).
и еще вопрос
Цитата: Radost от 09 дек 2010, 12:00
Сейчас есть просто дисконты со скидками 3 и 5 %%. на кассе их считывают и в 1с передается уже скидка. Кто это делал мне не известно, продавцы говорят давно а я в магазине только 3 месяца.

как (вернее чем) скидки бухгалтера (или кто там) закидывают в 1с, только закрытием кассовой смены ли, иль чем то другим?

Radost

Да, когда они делают обмен данными - выгрузка отчетов. У нас появляется текстовый файл с таким вот содержимым, который описала.

Обработка.ЗакрытиеКассовойСмены:

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ
//
//******************************************************************************
// СформироватьСоставПоЧекам(ТаблРеквизитов, СписокЧеков, ОписаниеРезультата)
//
// Параметры:
//  ТаблРеквизитов      - выходной параметр. Таблица значений с информацией о
//                        проданных товарах.
//  СписокЧеков         - список значений, содержащий обработанные
//                        документы ЧекККМ.
//  ОписаниеРезультата   - строка. Если произошла ошибка, то через параметр
//                        возвращается ее описаение.
//
// Возвращаемое значение:
//  Количество обработанных чеков.
//
// Описание:
//  Формирует Таблица значений с информацией о проданных товарах на основе
//  спецификации проведенных документов ЧекККМ.
//
Функция СформироватьСоставПоЧекам(ТаблРеквизитов, СписокЧеков, ОписаниеРезультата="")
   Перем Результат;
   
   ТаблРеквизитов = СоздатьОбъект("ТаблицаЗначений");
   ТаблРеквизитов.НоваяКолонка("Индекс");      // код товара + цена. Тот же товар с другой ценой - другой товар
   ТаблРеквизитов.НоваяКолонка("Товар");
   ТаблРеквизитов.НоваяКолонка("Количество");
   ТаблРеквизитов.НоваяКолонка("Единица");
   ТаблРеквизитов.НоваяКолонка("Цена");
   ТаблРеквизитов.НоваяКолонка("Сумма");// сумма продажи с НДС и НП в сумме     
   
   
   СписокЧеков = СоздатьОбъект("СписокЗначений");
   Чек         = СоздатьОбъект("Документ.ЧекККМ");
   Чек.УстановитьФильтр(1,0);
   Чек.ВыбратьДокументы(ВыбДата,ВыбДата);
   
   // сформируем список чеков.
   Пока Чек.ПолучитьДокумент()=1 Цикл
      Если Чек.Фирма = ВыбФирма Тогда
         Если Чек.Склад = ВыбСклад Тогда
            Если Чек.Касса = ВыбКасса Тогда
               Если Чек.Проведен() = 1 Тогда
                  СписокЧеков.ДобавитьЗначение(Чек.ТекущийДокумент());
               КонецЕсли;
            КонецЕсли;
         КонецЕсли;
      КонецЕсли;
   КонецЦикла;
   
   Результат = СписокЧеков.РазмерСписка();
   Если Результат = 0 Тогда
      ОписаниеРезультата = "По выбранным реквизитам отсутствуют проведенные Чеки ККМ.";
      Результат = 1;
   Иначе
      
      СчетчикЦикла = 0;
      ВидЧек = Перечисление.ВидыОперацийЧекККМ.Чек;
      Для СчетчикЦикла = 1 По СписокЧеков.РазмерСписка() Цикл
         
         Чек.НайтиДокумент(СписокЧеков.ПолучитьЗначение(СчетчикЦикла));
         Знак = ?(Чек.ВидОперации = ВидЧек, 1, -1);
         
         Чек.ВыбратьСтроки();
         Пока Чек.ПолучитьСтроку() = 1 Цикл
            
            Если Чек.Номенклатура.Выбран() = 1 Тогда
               ТекТовар = Чек.Номенклатура;
               // количество в базовых единицах
               Колво    = Знак * Чек.Количество * Чек.Коэффициент;
               Сумма    = Знак * Чек.Сумма;
               // цена за базовую единицу
               Цена     = ?(Чек.Коэффициент <> 0, Чек.Цена / Чек.Коэффициент, Чек.Цена);
               Индекс   = ТекТовар.Код + "_" + СокрЛ(Цена);
               
               ПозицияСписка = 0;
               Если ТаблРеквизитов.НайтиЗначение(Индекс, ПозицияСписка, "Индекс") = 0 Тогда
                  ТаблРеквизитов.НоваяСтрока();
                  ТаблРеквизитов.Индекс     = Индекс;
                  ТаблРеквизитов.Товар      = ТекТовар;
                  ТаблРеквизитов.Сумма      = Сумма;
                  ТаблРеквизитов.Количество = Колво;
                  ТаблРеквизитов.Единица    = ТекТовар.БазоваяЕдиница;
                  ТаблРеквизитов.Цена       = Цена;
               Иначе
                  ТаблРеквизитов.ПолучитьСтрокуПоНомеру(ПозицияСписка);
                  ТаблРеквизитов.Сумма      = ТаблРеквизитов.Сумма      + Сумма; 
                  ТаблРеквизитов.Количество = ТаблРеквизитов.Количество + Колво;
               КонецЕсли;
            КонецЕсли;
         КонецЦикла;
      КонецЦикла;
   КонецЕсли;
   
   Возврат Результат;
КонецФункции // СформироватьСоставПоЧекам()

//******************************************************************************
// СформироватьСоставOffline(ТаблРеквизитов, ОписаниеРезультата)
//
// Параметры:
//  ТаблРеквизитов      - выходной параметр. Таблица значений с информацией о
//                        проданных товарах.
//  ОписаниеРезультата   - строка. Если произошла ошибка, то через параметр
//                        возвращается ее описаение.
//
// Возвращаемое значение:
//  1 - операция успешно завершена, 0 - нет
//
// Описание:
//  Формирует Таблица значений с информацией о проданных товарах на основе
//  данных из ККМ, работающей в режиме Offline
//
Функция СформироватьСоставOffline(ТаблРеквизитов, ОписаниеРезультата, Сообщение = "")
   
   Перем НомерЛенты, ДанныеИзККМ;
   
   Рез = глККМЗакрытьСмену(ВыбКасса, ВыбСклад.НомерСекции, ДанныеИзККМ, ОписаниеРезультата, Сообщение, ВыбДата);
   
   Если Рез = 1 Тогда
      СпрЕдиницы = СоздатьОбъект("Справочник.Единицы");
      СпрТовары  = СоздатьОбъект("Справочник.Номенклатура");
      
      ТаблРеквизитов   = СоздатьОбъект("ТаблицаЗначений");
      ТаблРеквизитов.НоваяКолонка("Товар");
      ТаблРеквизитов.НоваяКолонка("Количество");
      ТаблРеквизитов.НоваяКолонка("Единица");
      ТаблРеквизитов.НоваяКолонка("Цена");
      ТаблРеквизитов.НоваяКолонка("Сумма");
      
       ДанныеИзККМ.ВыбратьСтроки();
      Пока ДанныеИзККМ.ПолучитьСтроку() = 1 Цикл
         
         Если ДанныеИзККМ.Количество > 0 Тогда
            
            Если ПустоеЗначение(ДанныеИзККМ.Штрихкод) = 0 Тогда
               
               // Задан штрихкод
               Если СпрЕдиницы.НайтиПоРеквизиту("Штрихкод", ДанныеИзККМ.Штрихкод, 1) = 0 Тогда
                  Сообщить("Товар со штрихкодом " + ДанныеИзККМ.Штрихкод + " не найден!");
               Иначе
                  ТаблРеквизитов.НоваяСтрока();
                  ТаблРеквизитов.Товар      = СпрЕдиницы.Владелец;
                  ТаблРеквизитов.Единица      = СпрЕдиницы.ТекущийЭлемент();
                  ТаблРеквизитов.Количество   = ДанныеИзККМ.Количество;
                  ТаблРеквизитов.Сумма      = ДанныеИзККМ.Сумма;
                  ТаблРеквизитов.Цена         = ДанныеИзККМ.Цена;
               КонецЕсли;
            Иначе
               СчетчикЦикла = 0;
               Код=ДанныеИзККМ.Код;
               Для СчетчикЦикла = СтрДлина(Код) по Метаданные.Справочник("Номенклатура").ДлинаКода-1 Цикл
                  Код="0"+Код;
               КонецЦикла;
               Если СпрТовары.НайтиПоКоду(Код, 0) = 0 Тогда                  
                  Сообщить("Товар со кодом " + Код + " не найден!");
               Иначе
                  ТаблРеквизитов.НоваяСтрока();
                  ТаблРеквизитов.Товар      = СпрТовары.ТекущийЭлемент();
                  ТаблРеквизитов.Единица      = СпрТовары.БазоваяЕдиница;
                  ТаблРеквизитов.Количество   = ДанныеИзККМ.Количество;
                  ТаблРеквизитов.Сумма      = ДанныеИзККМ.Сумма;
                  ТаблРеквизитов.Цена         = ДанныеИзККМ.Цена;
               КонецЕсли;
            КонецЕсли;
            
         КонецЕсли;
         
      КонецЦикла;
      
      Если ТаблРеквизитов.КоличествоСтрок() = 0 Тогда
         ОписаниеРезультата   = "За кассовую смену не продано ни одного товара с выбранного склада.";
         Рез   = 0;
      Иначе
         Рез   = 1;
      КонецЕсли;
      
   КонецЕсли;

   Возврат Рез;
   
КонецФункции // СформироватьСоставOffline()

//******************************************************************************
// Сформировать()
//
// Параметры:
//  Нет.
//
// Возвращаемое значение:
//  Нет.
//
// Описание:
//  Формирует документ ОтчетККМ. Если отчет формируется на основе документов ЧекККМ,
//  то процедура удаляет обработанные документы.
//
Процедура Сформировать()
   
   Перем ТаблРеквизитов;
   Перем НомерЛенты;
   Перем СписокЧеков;
   Перем ОписаниеРезультата;
   Перем Сообщение;       
   СписокЧеков = СоздатьОбъект("СписокЗначений");
   ДокОКС="";
   ОткрыватьФорму = 0;
   Если НЕ((ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР) и (глФРДляПриемаНаличныхОтЮрЛиц = 1)) Тогда
         
      Если (ПустоеЗначение(ВыбДата)  = 1)
       ИЛИ (ПустоеЗначение(ВыбФирма) = 1)
       ИЛИ (ПустоеЗначение(ВыбСклад) = 1)
       ИЛИ (ПустоеЗначение(ВыбКасса) = 1) Тогда
          Предупреждение("Не заданы параметры кассовой смены!", 60);
          Возврат;
      КонецЕсли;
      
      Если ПустоеЗначение(ВыбКасса.РежимККМ) = 1 Тогда
         // неавтоматизированная ККМ
         Рез = СформироватьСоставПоЧекам(ТаблРеквизитов, СписокЧеков, ОписаниеРезультата);
      ИначеЕсли ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР Тогда
         // фискальный регистратор
         Если глФРВкл = 1 Тогда
             Рез = СформироватьСоставПоЧекам(ТаблРеквизитов, СписокЧеков, ОписаниеРезультата);
         Иначе
            ОписаниеРезультата = "ККМ """ + ВыбКасса + """ не подключена.";
            Рез = 0;
         КонецЕсли;
      ИначеЕсли ВыбКасса.РежимККМ = Перечисление.РежимыККМ.OffLine Тогда
          Рез = СформироватьСоставOffline(ТаблРеквизитов, ОписаниеРезультата, Сообщение);
      ИначеЕсли ВыбКасса.РежимККМ = Перечисление.РежимыККМ.OnLine Тогда
          Рез = СформироватьСоставПоЧекам(ТаблРеквизитов, СписокЧеков, ОписаниеРезультата);
      Иначе
         // неизвестный режим
         ОписаниеРезультата = "Для режима работы ККМ """ + ВыбКасса.РежимККМ + """ отчет не формируется";
         Рез = 0;
      КонецЕсли;
      
      Если Рез = 0 Тогда
          Предупреждение(ОписаниеРезультата, 60);
         Возврат;
      КонецЕсли;
      
      // при создании документа ОтчетККМ реквизит Скидка должен быть заполнен
      // служебным элементом с наименование "Закрытие кассовой смены" для того,
      // чтобы в форме документа показывались колонки табличной части
      // "Без скики" и "Скидка"
      
      СлужНаим   = "Закрытие кассовой смены";
      СпрСкидки   = СоздатьОбъект("Справочник.Скидки");
      Если СпрСкидки.НайтиПоНаименованию(СлужНаим, 0, 1) = 0 Тогда
         // элемент нужно создать
          СпрСкидки.Новый();
         СпрСкидки.Наименование = СлужНаим;
         
         Попытка
            СпрСкидки.Записать();
         Исключение
            Предупреждение("Не удалось создать служебный элемент справочника Скидки.");
            Возврат;
         КонецПопытки;
      КонецЕсли;
      
      НачатьТранзакцию();
      Если НЕ((ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР) и (СписокЧеков.РазмерСписка() = 0)) Тогда
          // Теперь создадим новый документ ОтчетККМ
         ДокОКС = СоздатьОбъект("Документ.ОтчетККМ");
         ДокОКС.Новый();
         глЗаполнитьШапку(ДокОКС, 0);
         
         ОткрыватьФорму = 1;
         
         ДокОКС.ДатаДок = ВыбДата;
         ДокОКС.Фирма   = ВыбФирма;
         ДокОКС.Склад   = ВыбСклад;
          ДокОКС.Валюта  = глРубли;
         ДокОКС.Курс    = глКурсДляВалюты(ДокОКС.Валюта,ВыбДата);
         ДокОКС.Кратность = глКратностьДляВалюты(ДокОКС.Валюта,ВыбДата);
         ДокОКС.Касса   = ВыбКасса;
         ДокОКС.Скидка  = СпрСкидки.ТекущийЭлемент();
         ДокОКС.УчитыватьНП  = 0;
         
         ДокОКС.ОблагаетсяЕНВД = ВыбСклад.ОблагаетсяЕНВД;
         Если ВыбСклад.ОблагаетсяЕНВД = 1 Тогда
            ДокОКС.УчитыватьНДС = 0;
            ДокОКС.СуммаВклНДС  = 0;
            ДокОКС.СуммаВклНП   = 0;
         Иначе
            ДокОКС.УчитыватьНДС = 1;
            ДокОКС.СуммаВклНДС  = 1;
            ДокОКС.СуммаВклНП   = 1;
         КонецЕсли;
         
         ДокОКС.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + СокрЛП(ВыбФирма.ЮрЛицо.ПрефиксНомеровДокументов));
         
         ТаблРеквизитов.ВыбратьСтроки();
         Пока ТаблРеквизитов.ПолучитьСтроку() = 1 Цикл
            Если ТаблРеквизитов.Количество < 0 Тогда
               ОтменитьТранзакцию();
               Предупреждение("По товару """ + ТаблРеквизитов.Товар + """ зафиксировано возвратов больше чем продаж!", 60);
               Возврат;
            КонецЕсли;
               
            ДокОКС.НоваяСтрока();
            ДокОКС.Номенклатура = ТаблРеквизитов.Товар;
            ДокОКС.Количество   = ТаблРеквизитов.Количество;
            ДокОКС.Единица      = ТаблРеквизитов.Единица;
            ДокОКС.Коэффициент  = 1;
            ДокОКС.Цена         = ТаблРеквизитов.Цена;
            ДокОКС.Сумма        = ТаблРеквизитов.Сумма;
            
            СуммаБезНП = ДокОКС.Сумма;
            
            Если ДокОКС.УчитыватьНП  = 1 Тогда
               // рассчитаем сумму НП
               
                ДокОКС.СтавкаНП = ДокОКС.Номенклатура.СтавкаНП;
               ПроцентНП       = ДокОКС.СтавкаНП.Ставка;
               
               Если ДокОКС.СуммаВклНП = 1 Тогда
                  // нп в сумме
                   ДокОКС.СуммаНП = ДокОКС.Сумма * ПроцентНП / (100 + ПроцентНП);
                  // для расчета НДС получим сумму без НП
                  СуммаБезНП     = СуммаБезНП - ДокОКС.СуммаНП;
               Иначе
                  // в сумме нет НП
                  ДокОКС.СуммаНП = ДокОКС.Сумма * ПроцентНП / 100;
               КонецЕсли;
            КонецЕсли;
            
            Если ДокОКС.УчитыватьНДС  = 1 Тогда
               // рассчитаем сумму НДС
               ДокОКС.СтавкаНДС = ДокОКС.Номенклатура.СтавкаНДС;
               Если ДокОКС.СуммаВклНДС = 1 Тогда
                   Коэфф = глВыделяемыйНДС(ДокОКС.СтавкаНДС);
               Иначе
                  Коэфф = глНачисляемыйНДС(ДокОКС.СтавкаНДС);
               КонецЕсли;
               ДокОКС.СуммаНДС  = (ДокОКС.Сумма - ДокОКС.СуммаНП) * Коэфф;
            КонецЕсли;
            
         КонецЦикла;
         
         Если (ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР)
          или (ПустоеЗначение(ВыбКасса.РежимККМ) = 1)
          или (ВыбКасса.РежимККМ = Перечисление.РежимыККМ.OnLine)
         Тогда
            // снимем с проведения ЧекиККМ, чтобы можно было провести ОтчетККМ
            ДокЧеки = СоздатьОбъект("Документ.ЧекККМ");
            Для Счетчик = 1 По СписокЧеков.РазмерСписка() Цикл
               Если ДокЧеки.НайтиДокумент(СписокЧеков.ПолучитьЗначение(Счетчик)) = 1 Тогда
                  Попытка
                     ДокЧеки.СделатьНеПроведенным();
                  Исключение
                     ОтменитьТранзакцию();
                     Предупреждение(ОписаниеОшибки());
                     Возврат;
                  КонецПопытки;
               КонецЕсли;
            КонецЦикла;
         КонецЕсли;
         
         Попытка
            ДокОКС.Записать();
         Исключение
            ОтменитьТранзакцию();
            Предупреждение(ОписаниеОшибки());
            Возврат;
         КонецПопытки;
         
         // В режиме OffLine проведем после фиксирования транзакции
         Если ВыбКасса.РежимККМ <> Перечисление.РежимыККМ.OffLine Тогда
            ДокОКС.Провести();
            Если ДокОКС.Проведен() = 0 Тогда
               ОтменитьТранзакцию();
               Предупреждение(ОписаниеОшибки());
               Возврат;
            КонецЕсли;       
         КонецЕсли;

         Если (ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР)
          или (ПустоеЗначение(ВыбКасса.РежимККМ) = 1)
          или (ВыбКасса.РежимККМ = Перечисление.РежимыККМ.OnLine)
         Тогда
            Для Счетчик = 1 По СписокЧеков.РазмерСписка() Цикл
               Если ДокЧеки.НайтиДокумент(СписокЧеков.ПолучитьЗначение(Счетчик)) = 1 Тогда
                  Попытка
                     ДокЧеки.Удалить(1);
                  Исключение
                     ОтменитьТранзакцию();
                     Предупреждение(ОписаниеОшибки());
                     Возврат;
                  КонецПопытки;
               КонецЕсли;
            КонецЦикла;
         КонецЕсли;
      КонецЕсли;
      ЗафиксироватьТранзакцию();     
   КонецЕсли;      
   Если ВыбКасса.РежимККМ = Перечисление.РежимыККМ.ФР Тогда
      Если глФРЗакрытьСмену(НомерЛенты, ОписаниеРезультата) = 0 Тогда
         // не удалось зарыть смену на ФР
         Предупреждение(ОписаниеРезультата +
         РазделительСтрок + "Попытайтесь снять отчет вручную.", 60);
      Иначе
         Если (глФРДляПриемаНаличныхОтЮрЛиц <> 1)
            И (ОткрыватьФорму = 1) Тогда
            Попытка
               ДокОКС.НомерЛентыККМ = НомерЛенты;
               ДокОКС.Записать();
            Исключение
               //ОтменитьТранзакцию();
               Предупреждение(ОписаниеОшибки(),60);
               Возврат;
            КонецПопытки;
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;
   
   // В режиме OffLine внутри транзакции не проводили, проведем сейчас
   Если (ВыбКасса.РежимККМ = Перечисление.РежимыККМ.OffLine)и(ОткрыватьФорму = 1) Тогда
      ДокОКС.Провести();
   КонецЕсли;
   
   Если ОткрыватьФорму = 1 Тогда
      ОткрытьФорму(ДокОКС.ТекущийДокумент(),,0); 
   КонецЕсли;
   
   Если ВыбКасса.РежимККМ = Перечисление.РежимыККМ.OffLine Тогда
      Если (ДокОКС.Проведен() = 1) И (ПустоеЗначение(Сообщение) = 0) Тогда
         Предупреждение(Сообщение, 60); // выдадим сообщение, полученное из соответствующей обработки
      КонецЕсли;
   ИначеЕсли ВыбКасса.РежимККМ = Перечисление.РежимыККМ.OnLine Тогда
      
      Предупреждение("Необходимо вывести Z-отчет на ККМ.", 60);
   КонецЕсли;
   
КонецПроцедуры // Сформировать()

////////////////////////////////////////////////////////////////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии(ФлагЧтенияНастройки)
   
   Выбдата = РабочаяДата();
   
   Если ФлагЧтенияНастройки = 0 Тогда
      ВыбФирма = глЗначениеПоУмолчанию("ОсновнаяФирма");
      ВыбСклад = глЗначениеПоУмолчанию("ОсновнойСклад");
      ВыбКасса = глЗначениеПоУмолчанию("ОсновнаяКасса");
   КонецЕсли;
   
КонецПроцедуры // ПриОткрытии()

prog1c7.7

Цитата: Radost от 09 дек 2010, 13:05
Да, когда они делают обмен данными - выгрузка отчетов.

Что за выгрузка отчетов - внеш.комп?

Когда я сказал выложи обработку я имел ввиду не полотенце на 4 страницы а в архиве или ерт шник сам выложи либо на форуме, либо на почту мне, и теперь еще выгрузка отчетов нужна

Radost

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

Теги:

Похожие темы (2)

Рейтинг@Mail.ru

Поиск