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

Помогите найти ошибку в коде

Автор Евгений Шевченко, 15 мар 2016, 21:49

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

Евгений Шевченко

Помогите найти ошибку в коде! :dfbbdrfb: Жалуется на строку:

табДок.Области.Сумма.Значение = Формат (ПараметрыШтрихКода.Сумма/100, "ЧГ=0");

// Выводит макет в полученный табличный документ и заполняет данными
Процедура ВывестиМакетКвитанции (табДок, ЛицевойСчет="", ПериодНачисления="") экспорт
табДок.Очистить();

пМакет = ЭтотОбъект.ПолучитьМакет("КвитанцияПрочийПлатеж");
облДанные = пМакет.ПолучитьОбласть("Данные");
табДок.Вывести (облДанные);
КонецПроцедуры

// Выводит макет в полученный табличный документ (данные не заполняются)
Процедура ВывестиМакетКвитанцииБезДанных (табДок, ДанныеКвитанции = Неопределено) экспорт

табДок.Очистить();

пМакет = ЭтотОбъект.ПолучитьМакет("КвитанцияПрочийПлатеж");
облДанные = пМакет.ПолучитьОбласть("Данные");
табДок.Вывести (облДанные);

КонецПроцедуры

// Отвечает за выбор значений справочников в табличном поле
Процедура ОбработкаВыбора (ЭлементУправления, Область, СтандартнаяОбработка, табДок) экспорт

Попытка
если Область.ТипЗначения = Новый ОписаниеТипов ("СправочникСсылка.ПоставщикиУслуг") тогда
СтандартнаяОбработка = ложь;
если ТипЗнч (Область.Значение) = Тип ("СправочникСсылка.ПоставщикиУслуг") и НЕ Область.Значение.Пустая() тогда
Область.Значение = Справочники.ПоставщикиУслуг.ПустаяСсылка();
табДок.Области.КБК.Значение = Справочники.ЗначенияСвойств.ПустаяСсылка();
табДок.Области.ПроцентКомиссии.Значение = "";
иначе
пФорма = Справочники.ПоставщикиУслуг.ПолучитьФормуВыбора();

ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);
если ТаблицаПоставщиков = Неопределено тогда
пФорма.Отбор.Ссылка.Использование = истина;
пФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.Равно;
пФорма.Отбор.Ссылка.Значение = Справочники.ПоставщикиУслуг.ПустаяСсылка();

Область.Значение = пФорма.ОткрытьМодально();
табДок.Области.ПроцентКомиссии.Значение = "";
иначе
СписокПоставщиков = Новый СписокЗначений;
СписокПоставщиков.ЗагрузитьЗначения(ТаблицаПоставщиков.ВыгрузитьКолонку ("Поставщик"));
пФорма.Отбор.Ссылка.Использование = истина;
пФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
пФорма.Отбор.Ссылка.Значение = СписокПоставщиков;

ВыбранныйПоставщик = пФорма.ОткрытьМодально();
СтрокаПоиска = ТаблицаПоставщиков.Найти (ВыбранныйПоставщик, "Поставщик");
если СтрокаПоиска = Неопределено тогда
Область.Значение = Справочники.ПоставщикиУслуг.ПустаяСсылка();
табДок.Области.ПроцентКомиссии.Значение = "";
иначе
Область.Значение = ВыбранныйПоставщик;
табДок.Области.ПроцентКомиссии.Значение = "" + СтрокаПоиска.ПроцентКомиссии + "%";
КонецЕсли;
КонецЕсли;
КонецЕсли;

ВыполнитьПересчетДанных (табДок);
иначеЕсли Область.ТипЗначения = Новый ОписаниеТипов ("СправочникСсылка.ЗначенияСвойств") тогда
СтандартнаяОбработка = ложь;
если ТипЗнч (Область.Значение) = Тип ("СправочникСсылка.ЗначенияСвойств") и НЕ Область.Значение.Пустая() тогда
Область.Значение = Справочники.ЗначенияСвойств.ПустаяСсылка();
иначе
Поставщик = табДок.Области.ПоставщикУслуг.Значение;
если НЕ ЗначениеЗаполнено(Поставщик) тогда
сообщить ("Для выборка КБК необходимо указать поставщика услуг", СтатусСообщения.Внимание);
Возврат;
иначе
пФорма = Справочники.ЗначенияСвойств.ПолучитьФормуВыбора();
ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);
если ТаблицаПоставщиков = Неопределено тогда
пФорма.Отбор.Ссылка.Использование = истина;
пФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.Равно;
пФорма.Отбор.Ссылка.Значение = Справочники.ЗначенияСвойств.ПустаяСсылка();

Область.Значение = пФорма.ОткрытьМодально();
иначе
СписокКБК = Новый СписокЗначений;
УсловиеПоиска = Новый Структура ("Поставщик", Поставщик);
СтрПоиска = ТаблицаПоставщиков.НайтиСтроки (УсловиеПоиска);
для каждого Строка из СтрПоиска цикл
СписокКБК.Добавить(Строка.КБК);
КонецЦикла;

пФорма.Отбор.Ссылка.Использование = истина;
пФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
пФорма.Отбор.Ссылка.Значение = СписокКБК;

ВыбранныйКБК = пФорма.ОткрытьМодально();
Область.Значение = ВыбранныйКБК;
КонецЕсли;
КонецЕсли;
Конецесли;
КонецЕсли;
Исключение
сообщить (ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;

КонецПроцедуры

// Запуск пересчета данных
Процедура ПриИзмененииСодержимого (табДок, Область) экспорт

ВыполнитьПересчетДанных (табДок);

Конецпроцедуры

Процедура ВыполнитьПересчетДанных (табДок)

ПроцентКомиссииСтр = табДок.Области.ПроцентКомиссии.Значение;
если ЗначениеЗаполнено(ПроцентКомиссииСтр) тогда
ПроцентКомиссииСтр = СтрЗаменить (ПроцентКомиссииСтр, "%", "");
Попытка
ПроцентКомиссииЧисло = Число (ПроцентКомиссииСтр);
Исключение
ПроцентКомиссииЧисло = 0;
КонецПопытки;
иначе
ПроцентКомиссииЧисло = 0;
КонецЕсли;

табДок.Области.СуммаКомиссии.Значение = табДок.Области.Сумма.Значение * (ПроцентКомиссииЧисло/100);
табДок.Области.Итого.Значение = табДок.Области.Сумма.Значение + табДок.Области.СуммаКомиссии.Значение;

КонецПроцедуры

// Возвращает общую (итоговую) сумму по квитанции
Функция ВернутьИтог (табДок) экспорт

Возврат (табДок.Области.Итого.Значение);

КонецФункции

// Возвращает начало текста запроса для контекстного поиска плательщика
// Данные выбираются из "индивидуального" регистра "КонтактнаяИнформация_ХХХ"
Функция ВернутьТекстЗапросаДляПоискаПлательщика () экспорт
текстЗапроса = "";
Возврат (текстЗапроса);
КонецФункции

// Устанавливает текущую область документа ("юзабилити" программы) - используется для
// позиционирования курсора после контекстного поиска
Процедура УстановитьТекущуюОбласть (табДок) экспорт
табДок.ТекущаяОбласть = табДок.Области.Сумма;
КонецПроцедуры

// Возвращает ссылку на справочник "Виды платежей". Значение берется либо из соответствующего реквизита
// справочника "Квитанции" (параметр 1), либо как значение некоторой области табличного документа (параметр2)
Функция ЗаполнениеДокумента_ВернутьВидПлатежа (пКвитанция, табДок) экспорт

ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);
если ТаблицаПоставщиков = Неопределено тогда
Возврат (Справочники.ВидыПлатежей.ПустаяСсылка());
иначе
УсловиеПоиска = Новый Структура ("Поставщик, КБК", табДок.Области.ПоставщикУслуг.Значение, табДок.Области.КБК.Значение);

СтрокаПоиска = ТаблицаПоставщиков.НайтиСтроки (УсловиеПоиска);
если СтрокаПоиска.Количество() = 0 тогда
Возврат (Справочники.ВидыПлатежей.ПустаяСсылка());
иначе
Возврат (СтрокаПоиска.ВидПлатежа);
КонецЕсли;
КонецЕсли;

КонецФункции

// Возвращает адрес плательщика (при наличии) - выбирается как значение некоторой области табличного документа
Функция ЗаполнениеДокумента_ВернутьАдресПлательщика (табДок) экспорт

Возврат ("");

КонецФункции

// Возвращает таблицу значений с данными всех именованных областей табличного документа
//
// Параметры
// табДок - табличный документ
//
// Возврат
// таблица значений с колонками: Имя, Значение; где Имя - имя области табл. документа, а
// Значение - значение данной области
Функция ЗаполнениеДокумента_ВернутьДанныеТабличногоДокумента (табДок) экспорт

табрез = Новый ТаблицаЗначений;
табРез.Колонки.Добавить("Имя");
табРез.Колонки.Добавить("Значение");
для каждого Область из табДок.Области цикл
Попытка
если Область.СодержитЗначение тогда
новСтр = табРез.Добавить();
новСтр.Имя = Область.Имя;
новСтр.Значение = Область.Значение;
КонецЕсли;
Исключение
Продолжить;
КонецПопытки;
КонецЦикла;

ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);
если НЕ ТаблицаПоставщиков = Неопределено тогда
УсловиеПоиска = Новый Структура ("Поставщик, КБК", табДок.Области.ПоставщикУслуг.Значение, табДок.Области.КБК.Значение);

СтрокаПоиска = ТаблицаПоставщиков.НайтиСтроки (УсловиеПоиска);
если НЕ СтрокаПоиска.Количество() = 0 тогда
новСтр = табРез.Добавить();
новСтр.Имя = "ВидПлатежа";
новСтр.Значение = СтрокаПоиска.ВидПлатежа;

новСтр = табРез.Добавить();
новСтр.Имя = "ВидПлатежаКомиссия";
новСтр.Значение = СтрокаПоиска.ВидПлатежаКомиссия;

новСтр = табРез.Добавить();
новСтр.Имя = "ВидУслуги";
новСтр.Значение = СтрокаПоиска.ВидУслуги;
КонецЕсли;
КонецЕсли;

Возврат (табРез);

КонецФункции

// Возвращает ФИО плательщика - выбирается как значение некоторой области табличного документа
Функция ВернутьФИОПлательщика (табДок) экспорт

Возврат ("");

КонецФункции

// Формирует движения документа "Прием платежей"
//
// Параметры:
// Движения - объект типа "Коллекция движений"
// данныеМастераХранилище - таблица значений, содержащая данные мастера (упакована в хранилище)
Процедура СформироватьДвиженияДокумента (Движения, данныеМастераХранилище, СтрокаДокументаПриемПлатежей, докОбъект) экспорт

если СтрокаДокументаПриемПлатежей.Сторно ИЛИ СтрокаДокументаПриемПлатежей.ОтмененОператором тогда
Возврат;
КонецЕсли;

данныеМастера = данныеМастераХранилище.Получить();

если НЕ Метаданные.РегистрыСведений.Найти ("Платежи_СадыШколы") = Неопределено тогда
// запись данных по новому
Движение = Движения.Платежи_СадыШколы.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;
Движение.ВидПлатежа = ВернутьЗначениеМастера (данныеМастера, "ВидПлатежа", Справочники.ВидыПлатежей.ПустаяСсылка());
Движение.НомерПлатежа = СтрокаДокументаПриемПлатежей.НомерПлатежа;
Движение.КБК = ВернутьЗначениеМастера (данныеМастера, "КБК", Справочники.ЗначенияСвойств.ПустаяСсылка());
Движение.Сумма = ВернутьЗначениеМастера (данныеМастера, "Итого", 0);
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
иначе
// запись данных по старому
Движение = Движения.ПрочиеПлатежи.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;
Движение.ЛицевойСчет = "001";
Движение.ВидПлатежа = ВернутьЗначениеМастера (данныеМастера, "ВидПлатежа", Справочники.ВидыПлатежей.ПустаяСсылка());
Движение.ВидУслуги = ВернутьЗначениеМастера (данныеМастера, "ВидУслуги", Справочники.ВидыУслуг.ПустаяСсылка());
Движение.ПериодПлатежа = '00010101';
Движение.СуммаПлатежа = ВернутьЗначениеМастера (данныеМастера, "Итого", 0);
Движение.ПоставщикУслуг = ВернутьЗначениеМастера (данныеМастера, "ПоставщикУслуг", Справочники.ПоставщикиУслуг.ПустаяСсылка());
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
КонецЕсли;

СуммаПлатежа = ВернутьЗначениеМастера (данныеМастера, "Сумма", 0);
СуммаКомиссии = ВернутьЗначениеМастера (данныеМастера, "СуммаКомиссии", 0);

если НЕ СуммаПлатежа = 0 тогда
Движение = Движения.ПриемДенежныхСредств.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;;
Движение.ПоставщикУслуг = ВернутьЗначениеМастера (данныеМастера, "ПоставщикУслуг", Справочники.ПоставщикиУслуг.ПустаяСсылка());
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
Движение.ВидУслуги = ВернутьЗначениеМастера (данныеМастера, "ВидУслуги", Справочники.ВидыУслуг.ПустаяСсылка());
Движение.ВидПлатежа = ВернутьЗначениеМастера (данныеМастера, "ВидПлатежа", Справочники.ВидыПлатежей.ПустаяСсылка());
Движение.Кассир = докОбъект.Кассир;
Движение.НомерСмены = докОбъект.НомерСмены;
Движение.КассоваяМашина = докОбъект.КассоваяМашина;
Движение.Сумма = СуммаПлатежа;
Движение.КоличествоКвитанций = 1;
КонецЕсли;
если НЕ СуммаКомиссии = 0 тогда
Движение = Движения.ПриемДенежныхСредств.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;;
Движение.ПоставщикУслуг = ВернутьЗначениеМастера (данныеМастера, "ПоставщикУслуг", Справочники.ПоставщикиУслуг.ПустаяСсылка());
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
Движение.ВидУслуги = ВернутьЗначениеМастера (данныеМастера, "ВидУслуги", Справочники.ВидыУслуг.ПустаяСсылка());
Движение.ВидПлатежа = ВернутьЗначениеМастера (данныеМастера, "ВидПлатежаКомиссия", Справочники.ВидыПлатежей.ПустаяСсылка());
Движение.Кассир = докОбъект.Кассир;
Движение.НомерСмены = докОбъект.НомерСмены;
Движение.КассоваяМашина = докОбъект.КассоваяМашина;
Движение.Сумма = СуммаКомиссии;
Движение.КоличествоКвитанций = 0;
КонецЕсли;

// рег. нак. ДенежныеСредстваОрганизаций
СтатьяДвижения = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_СтатьяДвижения", Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка());

Движение = Движения.ДенежныеСредстваОрганизации.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
Движение.КассоваяМашина = докОбъект.КассоваяМашина;
Движение.Кассир = докОбъект.Кассир;
Движение.СтатьяДвижения = СтатьяДвижения;
Движение.Сумма = ВернутьЗначениеМастера (данныеМастера, "Итого", 0);

// рег. нак. ДанныеДляБухгалтерии
ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);
если НЕ ТаблицаПоставщиков = Неопределено тогда
УсловиеПоиска = Новый Структура;
УсловиеПоиска.Вставить("Поставщик", ВернутьЗначениеМастера (данныеМастера, "ПоставщикУслуг", Справочники.ПоставщикиУслуг.ПустаяСсылка()));
УсловиеПоиска.Вставить("КБК", ВернутьЗначениеМастера (данныеМастера, "КБК", Справочники.ЗначенияСвойств.ПустаяСсылка()));
СтрокаПоиска = ТаблицаПоставщиков.НайтиСтроки (УсловиеПоиска);
       
если НЕ СтрокаПоиска.Количество()=0 тогда
НаименованиеПлатежаБух = СтрокаПоиска.НаименованиеПлатежаБух;
НаименованиеПлатежаКомиссияБух = СтрокаПоиска.НаименованиеПлатежаКомиссияБух;
иначе
НаименованиеПлатежаБух = "Сады, школы";
НаименованиеПлатежаКомиссияБух = "Сады, школы (комиссия)";
КонецЕсли;
иначе
НаименованиеПлатежаБух = "Сады, школы";
НаименованиеПлатежаКомиссияБух = "Сады, школы (комиссия)";
КонецЕсли;

если НЕ СуммаПлатежа = 0 тогда
Движение = Движения.ДанныеДляБухгалтерии.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
Движение.КассоваяМашина = докОбъект.КассоваяМашина;
Движение.Кассир = докОбъект.Кассир;
Движение.Колонка2 = НаименованиеПлатежаБух;
Движение.НомерОперационнойСмены = СтрокаДокументаПриемПлатежей.НомерОперационнойСмены;
если СтрокаДокументаПриемПлатежей.НомерСменыБух = 1 тогда
Движение.Колонка4 = 1;
Движение.Колонка5 = СуммаПлатежа;
иначе
Движение.Колонка6 = 1;
Движение.Колонка7 = СуммаПлатежа;
КонецЕсли;
КонецЕсли;
если НЕ СуммаКомиссии = 0 тогда
Движение = Движения.ДанныеДляБухгалтерии.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
Движение.КассоваяМашина = докОбъект.КассоваяМашина;
Движение.Кассир = докОбъект.Кассир;
Движение.Колонка2 = НаименованиеПлатежаКомиссияБух;
Движение.НомерОперационнойСмены = СтрокаДокументаПриемПлатежей.НомерОперационнойСмены;
если СтрокаДокументаПриемПлатежей.НомерСменыБух = 1 тогда
Движение.Колонка5 = СуммаКомиссии;
иначе
Движение.Колонка7 = СуммаКомиссии;
КонецЕсли;
КонецЕсли;

если ЗначениеЗаполнено(СтатьяДвижения) тогда
ДобавитьЗаписьВРегистр = Основной.ПроверитьНеобходимостьДобавленияЗаписиВРегистрДанныеДляБухгалтерии(СтрокаДокументаПриемПлатежей.Период,
докОбъект.ПунктПриемаПлатежей, докОбъект.КассоваяМашина, докОбъект.Кассир,  СтатьяДвижения, СтрокаДокументаПриемПлатежей.НомерОперационнойСмены);

если ДобавитьЗаписьВРегистр тогда
Движение = Движения.ДанныеДляБухгалтерии.Добавить();
Движение.Период = СтрокаДокументаПриемПлатежей.Период;
Движение.ПунктПриемаПлатежей = докОбъект.ПунктПриемаПлатежей;
Движение.КассоваяМашина = докОбъект.КассоваяМашина;
Движение.Кассир = докОбъект.Кассир;
Движение.Колонка2 = СтатьяДвижения;
Движение.НомерОперационнойСмены = СтрокаДокументаПриемПлатежей.НомерОперационнойСмены;
Движение.Служебная = 1;
КонецЕсли;
КонецЕсли;

КонецПроцедуры

Функция ВернутьЗначениеМастера (данныеМастера, ИмяКолонки, ЗначениеПоУмолчанию)

стрПоиска = данныеМастера.Найти (ИмяКолонки, "Имя");
если НЕ стрПоиска = Неопределено тогда
Возврат (стрПоиска.Значение);
иначе
Возврат (ЗначениеПоУмолчанию);
КонецЕсли;

КонецФункции

Функция ВыполнитьПроверкуДанныхКвитанции (табДок, периодПлатежа) экспорт

рез = истина;

текСумма = ВернутьИтог (табДок);
если текСумма = 0 тогда
сообщить ("Сумма по текущему платежу равна 0. Проведение платежа невозможно.", СтатусСообщения.Внимание);
рез = ложь;
КонецЕсли;

пПоставщикУслуг = табДок.Области.ПоставщикУслуг.Значение;
если пПоставщикУслуг.Пустая() тогда
сообщить ("Не указан поставщик услуг. Проведение платежа невозможно.", СтатусСообщения.Внимание);
рез = ложь;
КонецЕсли;

пКБК = табДок.Области.КБК.Значение;
если пКБК.Пустая() тогда
сообщить ("Не указан КБК. Проведение платежа невозможно.", СтатусСообщения.Внимание);
рез = ложь;
КонецЕсли;

Возврат (рез);

КонецФункции

Функция ВернутьЛицевойСчет (табДок) экспорт

Возврат ("001");

КонецФункции

Процедура ВыполнитьВыводЛоготипа (табДок) экспорт



КонецПроцедуры

Процедура ВыполнитьПечатьКвитанции (табДок) экспорт

сообщить ("Печать квитанции нереализована.", СтатусСообщения.Информация);

КонецПроцедуры

Функция ВернутьМассивДопИнформацииДляФР (табДок) экспорт

//масДопСтрок = Новый Массив;
//Возврат (масДопСтрок);

масДопСтрок = Новый Массив;

//пЛицевойСчет = "Лицевой счет: " + ВернутьЛицевойСчет (табДок); ПоставщикУслуг        табДок.Области.Сумма.Значение
ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);

ПлатежНаименование = "";
УсловиеПоиска = Новый Структура;
УсловиеПоиска.Вставить("Поставщик", табДок.Области.ПоставщикУслуг.Значение);
УсловиеПоиска.Вставить("КБК", табДок.Области.КБК.Значение);

СтрокаПоиска = ТаблицаПоставщиков.НайтиСтроки (УсловиеПоиска);
если НЕ СтрокаПоиска.Количество()=0 тогда
ПлатежНаименование = СтрокаПоиска.НаименованиеПлатежа;
КонецЕсли;
//пЛицевойСчет = Строка(табДок.Области.ПоставщикУслуг.Значение)+ " "+ Строка(табДок.Области.КБК.Значение);         
пЛицевойСчет = ПлатежНаименование;         
масДопСтрок.Добавить(пЛицевойСчет);

// +add

масДопСтрок.Добавить(Лев("--------------------------------------------------", 48));
масДопСтрок.Добавить("СУММА: " + табДок.Области.Сумма.Значение + " руб.");
масДопСтрок.Добавить("КОМИССИЯ: " + табДок.Области.ПроцентКомиссии.Значение + " СУММА КОМИССИИ: " + табДок.Области.СуммаКомиссии.Значение + " руб.");
масДопСтрок.Добавить("ИТОГО К ОПЛАТЕ: " + табДок.Области.Итого.Значение + " руб.");

//масДопСтрок.Добавить("Сумма: " + табДок.Области.Сумма.Значение + " руб.");
//масДопСтрок.Добавить("Комиссия: " + табДок.Области.ПроцентКомиссии.Значение + " сумма комиссии: " + табДок.Области.СуммаКомиссии.Значение + " руб.");
//масДопСтрок.Добавить("Итого к оплате: " + табДок.Области.Итого.Значение + " руб.");

Возврат (масДопСтрок);


КонецФункции

// Возвращает таблицу значений с колонкой "СтрокаПечати". Значения данной колонки,
// т. е. строки печати будут выведены на дополнительном чеке (пречеке) в случае, если для текущей квитанции
// флаг "ПечатьДополнительногоЧека" утановлен в значение "истина"
Функция ВернутьТаблицуДопИнформацииДляДопЧека (табДок, платежНаим, СуммаПлатежа, НомерПлатежа, ПараметрыСмены) экспорт

табРез = Новый ТаблицаЗначений;
табРез.Колонки.Добавить("СтрокаПечати", Новый ОписаниеТипов ("Строка", ,Новый КвалификаторыСтроки(100)));

новСтр = табРез.Добавить();
новСтр.СтрокаПечати = Формат (ТекущаяДата(), "ДФ=dd.MM.yyyy");

новСтр = табРез.Добавить();
новСтр.СтрокаПечати = "ПРОДАЖА";

//новСтр = табРез.Добавить();
//новСтр.СтрокаПечати = платежНаим  + " =" + СуммаПлатежа;
//новСтр = табРез.Добавить();
//новСтр.СтрокаПечати = "ИТОГ =" + СуммаПлатежа;
//новСтр = табРез.Добавить();
//новСтр.СтрокаПечати = "НАЛИЧНЫМИ =" + СуммаПлатежа;

представлениеПлатежа = ВернутьПредставлениеНомераПлатежаДляФР(НомерПлатежа);
новСтр = табРез.Добавить();
новСтр.СтрокаПечати = представлениеПлатежа;

масДопСтрок = ВернутьМассивДопИнформацииДляФР (табДок);
для каждого Элем из масДопСтрок цикл
новСтр = ТабРез.Добавить();
новСтр.СтрокаПечати = Элем;
КонецЦикла;

Возврат (табРез);

КонецФункции

Функция ВернутьПредставлениеНомераПлатежаДляФР(пНомерПлатежа)

рез = "Номер платежа: " + Формат (пНомерПлатежа, "ЧЦ=8; ЧГ=0");
Возврат (рез);

КонецФункции

// Метод предназначен для возврата таблицы содержащей строки клише. Если для данной квитанции можно использовать
// стандартные строки клише, то следует возвращать значение Неопределено
//
// Возврат
// таблица значений с колонкой "СтрокаКлише", содержащей строку для вывода в клише, либо Неопределено
Функция ВернутьМассивКлише () экспорт

Возврат (Неопределено);

КонецФункции

// Метод предназначен для возврата таблицы содержащей строки клише (дополнительные, выводимые после основного массива строк).
// Если для данной квитанции можно использовать стандартный механизм формирования доп. строк, тогда следует возвращать значение Неопределено
//
// Возврат
// массив, содержащей строки для вывода в клише, либо Неопределено
Функция ВернутьМассивКлише_Настраиваемый (ПараметрыСмены) экспорт

Возврат (Неопределено);

КонецФункции

// Скрывает/показывает додлги в квитанции
Процедура УбратьПоказатьДолгПоКвитанции (табДок) экспорт



КонецПроцедуры

// Обнуляет начисления по квитанции (удаляет норм. суммы платежей)
Процедура ОбнулитьНачисления (табДок) экспорт



КонецПроцедуры

// Возвращает таблицу для вывода наименований платежей на ПД (в т.ч. разноска платежей по отделам)
//
// Возврат
// Таблица значений с колонками НаименованиеУслуги, Сумма, НомерОтдела
Функция ЗаполнениеДокумента_ВернутьТаблицуПлатежейДляПечатиПД (обрОбъектФискальныйРегистратор, ТабДок, Квитанция) экспорт

ТаблицаПлатежей = Новый ТаблицаЗначений;
ТаблицаПлатежей.Колонки.Добавить("НаименованиеУслуги", Новый ОписаниеТипов ("Строка",, Новый КвалификаторыСтроки(50)));
ТаблицаПлатежей.Колонки.Добавить("Сумма", Новый ОписаниеТипов ("Число", Новый КвалификаторыЧисла (15,2)));
ТаблицаПлатежей.Колонки.Добавить("НомерОтдела", Новый ОписаниеТипов ("Число", Новый КвалификаторыЧисла (2,0)));

ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);

ПлатежНаименование = "";
если Квитанция.Пустая() тогда
ПлатежНаименование = "Платеж";
иначе
если Квитанция.ПечатьВидаУслуги тогда
// если флаг "Печать вида услуги на фискальном чеке" установлен как "истина", то
// на чеке будет напечатано наименование вида услуги
если НЕ ТаблицаПоставщиков = Неопределено тогда
УсловиеПоиска = Новый Структура;
УсловиеПоиска.Вставить("Поставщик", табДок.Области.ПоставщикУслуг.Значение);
УсловиеПоиска.Вставить("КБК", табДок.Области.КБК.Значение);

СтрокаПоиска = ТаблицаПоставщиков.НайтиСтроки (УсловиеПоиска);
если НЕ СтрокаПоиска.Количество()=0 тогда
ПлатежНаименование = СтрокаПоиска.НаименованиеПлатежа;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;

ВидПлатежа = ЗаполнениеДокумента_ВернутьВидПлатежа (Квитанция, ТабДок);
НомерОтдела = обрОбъектФискальныйРегистратор.ВернутьНомерОтдела (ВидПлатежа);

СуммаПлатежаЗаУслугу = табДок.Области.Сумма.Значение;
СуммаКомиссии = табДок.Области.СуммаКомиссии.Значение;

НовСтр = ТаблицаПлатежей.Добавить();
НовСтр.НаименованиеУслуги = ПлатежНаименование;
НовСтр.Сумма = СуммаПлатежаЗаУслугу;
НовСтр.НомерОтдела = НомерОтдела;

если НЕ СуммаКомиссии = 0 тогда
НовСтр = ТаблицаПлатежей.Добавить();
НовСтр.НаименованиеУслуги = "Комиссия";
НовСтр.Сумма = СуммаКомиссии;

если НЕ ТаблицаПоставщиков = Неопределено тогда
СтрокаПоиска = ТаблицаПоставщиков.Найти (табДок.Области.ПоставщикУслуг.Значение, "Поставщик");
если НЕ СтрокаПоиска = Неопределено тогда
НовСтр.НомерОтдела = СтрокаПоиска.НомерОтделаФРКомиссия;
иначе
НовСтр.НомерОтдела = НомерОтдела;
КонецЕсли;
иначе
НовСтр.НомерОтдела = НомерОтдела;
КонецЕсли;
КонецЕсли;

Возврат (ТаблицаПлатежей);

КонецФункции

Процедура ВывестиВКвитанциюДанныеШтрихКода (табДок, ПараметрыШтрихКода) экспорт
//Сообщить(ПараметрыШтрихКода.Сумма);
//Сообщить(ТипЗНЧ(ПараметрыШтрихКода.Сумма));
//табДок.Области.Сумма.Значение = Лев (Формат (ПараметрыШтрихКода.Сумма, "ЧГ=0"), СтрДлина(Формат (ПараметрыШтрихКода.Сумма, "ЧГ=0"))-2);
//табДок.Области.Итого.Значение = Лев (Формат (ПараметрыШтрихКода.Сумма, "ЧГ=0"), СтрДлина(Формат (ПараметрыШтрихКода.Сумма, "ЧГ=0"))-2);
//матрица
табДок.Области.Сумма.Значение = Формат (ПараметрыШтрихКода.Сумма/100, "ЧГ=0");
табДок.Области.Итого.Значение = Формат (ПараметрыШтрихКода.Сумма/100, "ЧГ=0");
// tunik
табДок.Области.ПоставщикУслуг.Значение = ПараметрыШтрихКода.ПоставщикУслуг;
//табДок.Области.КБК.Значение = ПараметрыШтрихКода.КБК.Наименование;
табДок.Области.КБК.Значение = Справочники.ЗначенияСвойств.НайтиПоНаименованию("180");
табДок.Области.ПроцентКомиссии.Значение = "3";
ВыполнитьПересчетДанных (табДок)
КонецПроцедуры

// Проверяет заполнение настроек обработки
Процедура ВыполнитьПроверкуУстановкиНастроек () экспорт

СтатьяДвижения = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_СтатьяДвижения", Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка());
если НЕ ЗначениеЗаполнено(СтатьяДвижения) тогда
сообщить ("Мастер обработки сады, школы. Не заполнена настройка ""Статья движения"".", СтатусСообщения.Внимание);
КонецЕсли;

ТаблицаПоставщиков = Основной.ВернутьСохраненнуюНастройкуМастера ("МастерОбработкиУпрОбразования_ТаблицаПостащиков", Неопределено);
если НЕ ЗначениеЗаполнено(ТаблицаПоставщиков) ИЛИ ТаблицаПоставщиков.Количество() = 0 тогда
сообщить ("Мастер обработки сады, школы. Не заполнена настройка ""Таблица поставщиков"".", СтатусСообщения.Внимание);
иначе
для каждого Строка из ТаблицаПоставщиков цикл
если НЕ ЗначениеЗаполнено(Строка.Поставщик) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Поставщик"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.ВидПлатежа) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Вид платежа"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.ВидПлатежаКомиссия) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Вид платежа комиссия"".", СтатусСообщения.Внимание);
КонецЕсли;
    если НЕ ЗначениеЗаполнено(Строка.ВидУслуги) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Вид услуги"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.КБК) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""КБК"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.ПроцентКомиссии) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Процент комиссии"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.НаименованиеПлатежа) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Наименование платежа"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.НаименованиеПлатежаБух) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Наименование платежа (бух.)"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.НаименованиеПлатежаКомиссияБух) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Наименование платежа комиссия (бух.)"".", СтатусСообщения.Внимание);
КонецЕсли;
если НЕ ЗначениеЗаполнено(Строка.НомерОтделаФРКомиссия) тогда
сообщить ("Мастер обработки сады, школы. В строке номер " + Строка.НомерСтроки +
" таблицы поставщиков не заполнена настройка ""Номер отдела ФР (комиссия)"".", СтатусСообщения.Внимание);
КонецЕсли;
КонецЦикла;
КонецЕсли;

КонецПроцедуры

Gunner

А поподробнее? Какая ошибка?

Евгений Шевченко

Цитата: Gunner от 16 мар 2016, 09:36
А поподробнее? Какая ошибка?
Сканер ШК не сканирует детские сады, пишет не найдено поле "Сумма" это на новых моих компьютерах Windows10 на 7 все ок. Что то с драйверами торгового оборудованния, не могу понять! Все остальное открывается, только обработчик дестких садов не сканирует:( Но платежи отправляются!

дфтын

1. нет такого - "чтото там детские сады" - есть - сканер сканирует штрих код
2. ненадо тут кидать код всей базы. вы уверены, что ктото его читать будет?

резюме:
пролблема в том, что есть какоето не соответствие считывавемому штрих коду и тому, какой шаблон штрихкода занесен в базу.
для решения етой проблемы в любом случае нужно смотреть
человек с удаленной телепатеей уехал. нету его. когда будет -не известно

итого?:
ищите программиста
обращайтесь ежли что


Помог? Нажми - Спасибо :)
skype: Soprov1C

Теги:

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

Рейтинг@Mail.ru

Поиск