Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Июл 2017, 15:44
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите найти ошибку в коде  (Прочитано 729 раз)

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

Оффлайн Евгений Шевченко

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-03-12
  • Сайт: 
Помогите найти ошибку в коде! :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

  • ****
  • Сообщений: 291
  • РЕПУТАЦИЯ: 23
  • КПД: 8%
  • Регистрация: 2011-08-07
  • Сайт: 
  • Профессия: Программист 1С
А поподробнее? Какая ошибка?

Оффлайн Евгений Шевченко

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-03-12
  • Сайт: 
А поподробнее? Какая ошибка?
Сканер ШК не сканирует детские сады, пишет не найдено поле "Сумма" это на новых моих компьютерах Windows10 на 7 все ок. Что то с драйверами торгового оборудованния, не могу понять! Все остальное открывается, только обработчик дестких садов не сканирует:( Но платежи отправляются!

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
1. нет такого - "чтото там детские сады" - есть - сканер сканирует штрих код
2. ненадо тут кидать код всей базы. вы уверены, что ктото его читать будет?

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

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

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


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3982
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 5240
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 5557
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

Автор Dm109Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 3685
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

Автор Vasya PovarРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1769
Последний ответ 07 Дек 2016, 15:53
от Kironten

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
116 Сообщений
alex0402
102 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
AIFrame
51 Сообщений
Golickoff Golickoff
49 Сообщений
ilyay ilyay
49 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
LexaK
22 Сообщений

* Кто онлайн

  • Точка Гостей: 258
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal