Изменение "Обработка.ЗакрытиеКассовойСмены" 1С 7.7 ТиС

Тема в разделе "1C и всё что с ней связано", создана пользователем Elll, 20 апр 2009.

  1. Elll

    Elll Гость

    Доброго времени суток. как можно сделать чтобы обработка не загружала дубли из выгруженного отчета о продажах? допустим в файле о продажах записано следующее

    725;15.04.09;12:03:38;11;1;2321;4;680;1;999;1;999; !!
    726;15.04.09;12:04:03;30;1;2321;4;680;1;2498;0;999; !!
    727;15.04.09;12:04:31;40;1;2321;4;0;741;0;1;999;
    728;15.04.09;12:04:31;55;1;2321;4;0;0;0;0;999;
    729;15.04.09;12:37:40;11;1;2322;4;2540;1;366;1;366;
    775;16.04.09;19:32:11;55;1;2336;2;0;0;0;0;2998;
    776;16.04.09;19:48:54;60;1;2337;2;304;0;4992;0;9988;
    777;16.04.09;19:49:27;51;1;2338;2;0;0;0;0;4992;
    778;16.04.09;19:49:47;61;1;2339;2;742;0;0;0;9988;
    725;15.04.09;12:03:38;11;1;2321;4;680;1;999;1;999; !!
    726;15.04.09;12:04:03;30;1;2321;4;680;1;2498;0;999; !!

    те строки которые я пометил знаком "!!" обработка загрузит дважды, надо чтобы он как то определил что последние две строки (именно в этом случае две последние строки) загружать не надо.думаю можно чтоб он проверял по номеру транзакции, но как это сделать не знаю... :) обработку прикрепил...
     

    Вложения:

  2. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Да ничего сложного. Сортируешь табличку по полю транзацкия. Отпарвляешь номер транзакции в переменную, а потом сравниваешь со следующим номером. Если равны - не грузишь, если разные - грузишь. Если грузишь - соответственно обновляешь значение в переменной
     
  3. Elll

    Elll Гость

    KiR спасиб,но как это написать я не знаю=( с кодом текущей обработки еще не разобрался,и куда дописыватьтож не знаю.. а время поджимает,эх=(((

    [codebox]Функция СформироватьСоставOffline(ТаблРеквизитов, ОписаниеРезультата, Сообщение = "")

    Перем НомерЛенты, ДанныеИзККМ;

    Рез = глККМЗакрытьСмену(ВыбКасса, ВыбСклад.НомерСекции, ДанныеИзККМ, ОписаниеРезультата, Сообщение, ВыбДата);

    Если Рез = 1 Тогда
    СпрЕдиницы = СоздатьОбъект("Справочник.Единицы");
    СпрТовары = СоздатьОбъект("Справочник.Номенклатура");

    ТаблРеквизитов = СоздатьОбъект("ТаблицаЗначений");
    ТаблРеквизитов.НоваяКолонка("Товар");
    ТаблРеквизитов.НоваяКолонка("Количество");
    ТаблРеквизитов.НоваяКолонка("Единица");
    ТаблРеквизитов.НоваяКолонка("Цена");
    ТаблРеквизитов.НоваяКолонка("Сумма");

    ДанныеИзККМ.ВыбратьСтроки();
    Пока ДанныеИзККМ.ПолучитьСтроку() = 1 Цикл

    Если ДанныеИзККМ.Количество > 0 Тогда

    Если ПустоеЗначение(ДанныеИзККМ.Штрихкод) = 0 Тогда

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

    КонецЕсли;

    КонецЦикла;

    Если ТаблРеквизитов.КоличествоСтрок() = 0 Тогда
    ОписаниеРезультата = "За кассовую смену не продано ни одного товара с выбранного склада.";
    Рез = 0;
    Иначе
    Рез = 1;
    КонецЕсли;

    КонецЕсли;

    Возврат Рез;

    КонецФункции // СформироватьСоставOffline()[/codebox] вроде как сюда дописывать..
     
  4. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    ДанныеИзККМ - это и есть Таблица Значений, пример которой приведен в первом посте? И как называются колонки в ней?
     
  5. natusia

    natusia Гость

    здраствуйте!
    При загрузке отчета ККА,(v 7.7),ошибочно были удалены транзакции,возможно востоновление инфолрмации,или как исправить ошибку,не формируется отчет за этот день
    Заранее благодарна за помощь
     
Загрузка...

Поделиться этой страницей