Для отображения персонализированного контента и рекламных сообщений, а также хранения личных настроек на локальном компьютере веб-сайты «1С-Рарус» используют технологию cookie и аналогичные. Продолжив использование наших веб-сайтов, Вы даете согласие на обработку персональных данных, выражаете согласие с Политикой конфиденциальности rarus.ru и применением этих технологий.
Продолжив использование веб-сайтов «1С-Рарус», Вы даете согласие на обработку персональных данных, выражаете согласие с Политикой конфиденциальности.
Интернет-магазин Доставка

Мы выбрали для Вас офис в Москве.

Вы можете изменить его на офис в другом городе.

Михаил Волков (Все сообщения пользователя)

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

  1. Форум
  2.  / Пользователи
  3.  / Михаил Волков
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 14 След.
Фронт кассира 1С Альфа-Авто
 
[QUOTE]Светлана Сулименко написал:
Алексей, возможно в релизе 5,1,16 будет реализована данная возможность, но точной информации пока нет.[/QUOTE]
Наверное не скоро... В былые времена стояли по несколько 1С-серверов (точнее служб 1C:Enterprise 8.3 Server Agent (x86-64)) на одном сервере разных версий: 8.1, 8.2, 8.3. А тут версия одна 8.3 только релизы разные: 8.3.10 и 8.3.14 - не так просто!? У кого есть опыт установки 1С-серверов одной версии 8.3, но разных релизов, поделитесь..?
Фронт кассира 1С Альфа-Авто
 
[QUOTE]Алексей Федулеев написал:
на сервере работает не только Альфа, но и Бухгалтерия, Зарплата, а там минимальная версия платформы начинается с 8.3.12...[/QUOTE]
А в них работает поиск по символам введенных с клавиатуры? Если нет, и не будет устранен этот дефект для новых платформ, то придется на сервере держать несколько платформ: 8.3.10 для Альфа-Авто, 8.3.12 и выше для остальных конфигураций (как когда-то 8.2 и 8.3). Скорее этот вопрос к 1С, чем 1С-Рарус.
Изменено: Михаил Волков - 11.04.2019 08:13:42 (Добавление текста)
Фронт кассира 1С Альфа-Авто
 
[QUOTE]Алексей Федулеев написал:
обновил платформу 1С до версии 8.3.12.1855, после обновления в Альфа-Авто... перестал работать поиск по Артикулу с клавиатуры[/QUOTE]
И в более ранних версиях платформ 8.3.12 перестал работать поиск по символам введенных с клавиатуры. Вроде как [URL=https://forum.mista.ru/topic.php?id=830635#41]специально[/URL]!?
Фискальный признак документа (ФПД), Получение ФПД для отправки чека в электронном виде.
 
[QUOTE]Михаил Волков написал:
Другие значения SafeArrayПараметрыЧека.GetValue(x, y) проверяли, существуют? [/QUOTE]
Нет, но их можно добавить в обработке Торговое оборудование. У меня ФР АТОЛ, поэтому доработал функцию и процедуру формы ФР_Атол_ДрайверФР следующим образом:[CODE]// Получить параметры чека
Функция ПолучитьПараметрыЧека(НомерСмены,НомерЧека,НомерДок,ДатаЧека,Фискальный = Истина,НомерФПД = ""); //+МВ 27.03.2019

// Сохраняем номер,дату и время чека
Устройство.ПолучитьСостояние();
КодОшибки = РезультатВыполненияДействия(); Если КодОшибки <> 0 Тогда Возврат КодОшибки; КонецЕсли;

ПроверкаПоддержки54ФЗ();

Если Поддерживает54ФЗ Тогда

Устройство.НомерРегистра = 53;
КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;

// Получим номер смены
НомерСмены = -1;
НомерСмены = Число(Устройство.Смена);
Если НомерСмены=0 Тогда НомерСмены=-1;  КонецЕсли;

Если Фискальный Тогда
НомерЧека = Устройство.КоличествоИтераций;
Если НомерЧека=0 Тогда НомерЧека=-1;  КонецЕсли;
Устройство.НомерРегистра = 52;
КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;
НомерДок  = Устройство.НомерДокумента;

//+МВ 27.03.2019 Получим фискальный признак
НомерФПД = Устройство.ФискальныйПризнак;
Иначе
НомерДок = Устройство.НомерЧека - 1;
КонецЕсли;
Иначе

// Сохраняем номер чека
Устройство.ПолучитьСостояние();
КодОшибки = РезультатВыполненияДействия(); Если КодОшибки <> 0 Тогда Возврат КодОшибки; КонецЕсли;

Устройство.НомерРегистра = 19;
КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;

НомерЧека = Устройство.НомерЧека-1;
НомерДок  = Устройство.НомерДокумента-1;

// Получим номер закрытой смены
НомерСмены = -1;
Устройство.НомерРегистра = 21; // номер текущей смены
КодОшибки = ВыполнитьКоманду("ПолучитьРегистр");
Если КодОшибки <>0 Тогда Возврат КодОшибки; КонецЕсли;

НомерСмены = Число(Устройство.Смена);
Если НомерСмены=0 Тогда НомерСмены=-1;  КонецЕсли;

КонецЕсли;

// Сохраняем дату и время чека
ДатаЧека=Формат(Устройство.Год,"ЧЦ=4; ЧВН=; ЧГ=0")+"."+
Формат(Устройство.Месяц,"ЧЦ=2; ЧВН=; ЧГ=0")+"."+
Формат(Устройство.День,"ЧЦ=2; ЧВН=; ЧГ=0")+" "+
Формат(Устройство.Час,"ЧЦ=2; ЧВН=; ЧГ=0")+":"+
Формат(Устройство.Минута,"ЧЦ=2; ЧВН=; ЧГ=0")+":"+
Формат(Устройство.Секунда,"ЧЦ=2; ЧВН=; ЧГ=0");
Возврат 0;

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

// Вернуть параметры чека
Процедура ВернутьПараметрыЧека(НомерСмены,НомерЧека,НомерДок,ДатаЧека,НомерФПД) //+МВ 27.03.2019
// Возвращает данные пробитого на ФР чека
// .. НомерЧека = Число(<Номер пробитого чека>)
// .. ДатаЧека = Дата(<Дата пробитого чека>)
ПараметрыВозврата=Рарус_Компонента.СоздатьПараметры(5,1); //+МВ 27.03.2019
ПараметрыВозврата.SetValue(0,0,НомерСмены);
ПараметрыВозврата.SetValue(1,0,НомерЧека);
ПараметрыВозврата.SetValue(2,0,НомерДок);
ПараметрыВозврата.SetValue(3,0,ДатаЧека);
ПараметрыВозврата.SetValue(4,0,НомерФПД); //+МВ 27.03.2019
КонецПроцедуры // ВернутьПараметрыЧека[/CODE]Далее добавил в документ ЧекНаОплату и обработку ФронтКассира реквизит НомерФПД (тип Строка 10) - Фискальный признак документа. И дописал [URL=https://rarus.ru/forum/messages/forum7/topic12988/message82204/#message82204]в выше упомянутый код[/URL] ФронтКассира следующее:[CODE]Попытка
КоличествоСтрок=0; КоличествоСтолбцов=0;
SafeArrayПараметрыЧека.GetBounds(КоличествоСтрок,КоличествоСтолбцов);
НомерСмены=Число(SafeArrayПараметрыЧека.GetValue(0,0));
НомерЧека=Число(SafeArrayПараметрыЧека.GetValue(1,0));
ДатаФР=Вычислить("'"+SafeArrayПараметрыЧека.GetValue(3,0)+"'");
НомерДокумента=Число(SafeArrayПараметрыЧека.GetValue(2,0));
НомерФПД = ""; //+МВ 27.03.2019  
Если КоличествоСтрок > 4 Тогда
НомерФПД = СокрЛП(SafeArrayПараметрыЧека.GetValue(4,0));
КонецЕсли;
СтруктураВозвратныхПараметров = Новый Структура("ДатаФР,НомерЧека,НомерДокумента,НомерСмены,НомерФПД",ДатаФР,НомерЧека,НомерДокумента,НомерСмены,НомерФПД); //-МВ
Исключение
ТекстОшибки="Ошибка получения фискальных реквизитов пробитого чека: "+ОписаниеОшибки();
КонецПопытки;[/CODE]А в функцию ЗаписатьЧек():[CODE]Функция ЗаписатьЧек(ФлагПроведения,СообщениеОбОшибке,ПраваДополнительно=НЕОПРЕДЕЛЕНО, КПопыток=-1, ПроверитьКорректность=ЛОЖЬ) Экспорт
Результат=ЛОЖЬ;

// Сформируем и заполним объект для записи в БД
Если ХозОперация=Справочники.ХозОперации.ПриходныйКассовыйОрдер ИЛИ (НЕ УстановленРежим("РКО") И ХозОперация=Справочники.ХозОперации.РасходныйКассовыйОрдер) Тогда
ДокументОбъект = Ссылка.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(ДокументОбъект, ЭтотОбъект, "НомерЧека,ДатаФР,НомерДокумента,НомерСмены,ФР,КассаККМ,СкладКомпании");
ИначеЕсли ХозОперация=Справочники.ХозОперации.ЧекНаОплату И (НЕ Ссылка.Пустая()) Тогда
ДокументОбъект = Ссылка.ПолучитьОбъект();
ДокументОбъект.Оплаты.Загрузить(Оплаты.Выгрузить());
ЗаполнитьЗначенияСвойств(ДокументОбъект, ЭтотОбъект, "НомерЧека,ДатаФР,НомерДокумента,НомерСмены,ФР,КассаККМ,СкладКомпании,ПолученоНал,ПолученоБезНал,НомерФПД"); //+МВ 27.03.2019
Попытка ДокументОбъект.АвтоЗакрытиеСделок = ЭтотОбъект.ДоговорВзаиморасчетов.АвтоЗакрытиеСделок; Исключение КонецПопытки;
ДокументОбъект.Дата=ТекущаяДата();[/CODE]В форме документа ЧекНаОплату реквизит НомерФПД расположил на вкладке Фискальные реквизиты в виде гиперссылки, при нажатии на которую открывается чек на сайте ОФД:[CODE]// Открыть чек на сайте ОФД Такском-Касса
//+МВ 29.03.2019
Процедура НомерФПДНажатие(Элемент)
Если ПустаяСтрока(НомерФПД) Тогда Возврат; КонецЕсли;
ЗапуститьПриложение("https://receipt.taxcom.ru/v01/show?fp=" + СокрЛП(НомерФПД) + "&s=" + Формат(СуммаДокумента,"ЧГ=0") + "&sf=False&sfn=False");
КонецПроцедуры[/CODE]Таким образом всегда можно убедиться ушел ли чек в ОФД.
Изменено: Михаил Волков - 30.03.2019 15:20:46 (Добавление текста)
Фискальный признак документа (ФПД), Получение ФПД для отправки чека в электронном виде.
 
[QUOTE]Сергей Степченков написал:
Альфа запросом получает от ККТ последние реквизиты чека (Номер, дату, смену) возможно ли в этом месте кода получать и ФПД, и будет ли это реализовано?[/QUOTE]
Об этом месте кода речь? [CODE]Попытка
КоличествоСтрок=0; КоличествоСтолбцов=0;
SafeArrayПараметрыЧека.GetBounds(КоличествоСтрок,КоличествоСтолбцов);
НомерСмены=Число(SafeArrayПараметрыЧека.GetValue(0,0));
НомерЧека=Число(SafeArrayПараметрыЧека.GetValue(1,0));
ДатаФР=Вычислить("'"+SafeArrayПараметрыЧека.GetValue(3,0)+"'");
НомерДокумента=Число(SafeArrayПараметрыЧека.GetValue(2,0));
СтруктураВозвратныхПараметров=Новый Структура("ДатаФР,НомерЧека,НомерДокумента,НомерСмены",ДатаФР,НомерЧека,НомерДокумента,НомерСмены);
Исключение
ТекстОшибки="Ошибка получения фискальных реквизитов пробитого чека: "+ОписаниеОшибки();
КонецПопытки;[/CODE] Другие значения SafeArrayПараметрыЧека.GetValue(x, y) проверяли, существуют? Что в них, есть Фискальный признак чека?
Онлайн кассы
 
[QUOTE]Данил Василига написал:
Можете поделиться Вашей доработкой по пробитию двух чеков из одного заказ-наряда?[/QUOTE]
Да, в теме [URL=https://rarus.ru/forum/messages/forum7/topic13530/message81760/#message81760]Отбитие чеков по заказ-нарядам при различных СНО[/URL].
Отбитие чеков по заказ-нарядам при различных СНО, Отбитие чеков по заказ-нарядам при различных СНО для товаров и работ
 
Продолжение описания моей доработки:
Аналогичные флажки: ОплатаТовары и ОплатаРаботы внесены в форму документа ЧекНаОплату:[CODE]// Обновление отображения при смене "Документ основание"
//+МВ 30.09.2017
Процедура ОбновлениеОтображенияДополнительно(УстановитьПолнаяОплатаПоСделке = Истина)
ПолнаяОплатаПоСделке(УстановитьПолнаяОплатаПоСделке);
Если ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ЗаказНаряд") Тогда
ИтогТовары = ДокументОснование.Товары.Итог("СуммаВсего");
ИтогРаботы = ДокументОснование.Работы.Итог("СуммаВсего");
Если ПолнаяОплатаПоСделке Тогда
ОплатаТовары = СуммаДокумента >= ИтогТовары;
ОплатаРаботы = СуммаДокумента >= ИтогРаботы;
Если СуммаДокумента < ИтогТовары + ИтогРаботы Тогда
ОплатаТовары = ОплатаТовары И (ИтогТовары > ИтогРаботы Или Не ОплатаРаботы);
ОплатаРаботы = ОплатаРаботы И (ИтогРаботы > ИтогТовары Или Не ОплатаТовары);
КонецЕсли;
Если Модифицированность Тогда
орОбработкаЗаполнения_ЗаказНаряд_ЧекНаОплату(ЭтотОбъект, ДокументОснование, Ложь, Ложь, ОплатаТовары, ОплатаРаботы);
дкВывестиЗаголовокСуммаДокумента(ЭтаФорма);
КонецЕсли;
Иначе
ОплатаТовары = Ложь;
ОплатаРаботы = Ложь;
КонецЕсли;
ОплатаТоварыРаботы();
ЭлементыФормы.ОплатаТовары.Доступность = ПолнаяОплатаПоСделке И ИтогТовары > 0;
ЭлементыФормы.ОплатаРаботы.Доступность = ПолнаяОплатаПоСделке И ИтогРаботы > 0;
ЭлементыФормы.ОплатаТовары.Видимость   = Истина;
ЭлементыФормы.ОплатаРаботы.Видимость   = Истина;
ЭлементыФормы.ПолнаяОплатаПоСделке.Заголовок = "Полная оплата по сделке:";
Иначе
ЭлементыФормы.ОплатаТовары.Видимость   = Ложь;
ЭлементыФормы.ОплатаРаботы.Видимость   = Ложь;
ЭлементыФормы.ПолнаяОплатаПоСделке.Заголовок = "Полная оплата по сделке";
КонецЕсли;
Если Модифицированность Тогда
ОбработкаРеквизита("СуммаДокумента",,ЭтаФорма);
КонецЕсли;
КонецПроцедуры // ОбновлениеОтображенияДополнительно()

// Изменение оплаты Товары
//+МВ 30.09.2017
Процедура ОплатаТоварыПриИзменении(Элемент)
СуммаДокумента = ?(ОплатаТовары, ДокументОснование.Товары.Итог("СуммаВсего"), 0)
  + ?(ОплатаРаботы, ДокументОснование.Работы.Итог("СуммаВсего"), 0);
ОбновлениеОтображенияДополнительно();
КонецПроцедуры

// Изменение оплаты Работы
//+МВ 30.09.2017
Процедура ОплатаРаботыПриИзменении(Элемент)
СуммаДокумента = ?(ОплатаТовары, ДокументОснование.Товары.Итог("СуммаВсего"), 0)
  + ?(ОплатаРаботы, ДокументОснование.Работы.Итог("СуммаВсего"), 0);
ОбновлениеОтображенияДополнительно();
КонецПроцедуры[/CODE]А чтобы в чеке правильно отбивалась СНО, внес изменения в функцию ПолучитьКодНалогообложения() обработки Фронт кассира, которую [URL=https://rarus.ru/forum/messages/forum7/topic11493/message73497/#message73497]приводил ранее[/URL].
Отбитие чеков по заказ-нарядам при различных СНО, Отбитие чеков по заказ-нарядам при различных СНО для товаров и работ
 
Продолжение описания моей доработки:
Далее открывается форма обработки Фронт кассира "Корректировка суммы оплаты". В ней к флажку "Полная оплата по сделке" добавлены еще два: ОплатаТовары и ОплатаРаботы, которые видны только при оплате заказ-наряда:[CODE]Процедура ПриОткрытии()
Если ПолнаяОплатаПоСделке Тогда
ЭлементыФормы.СуммаДляОплаты.Доступность=Ложь;
ЭлементыФормы.СтавкаНДС.Доступность=Ложь;
ЭлементыФормы.СуммаНДС.Доступность=Ложь;
ТекущийЭлемент=ЭлементыФормы.ПолнаяОплатаПоСделке;
Иначе
ТекущийЭлемент=ЭлементыФормы.СуммаДляОплаты;
КонецЕсли;
ВидимостьОплат = ТипЗнч(Сделка) = Тип("ДокументСсылка.ЗаказНаряд"); //+МВ 15.11.2017
ЭлементыФормы.ОплатаТовары.Видимость = ВидимостьОплат;
ЭлементыФормы.ОплатаРаботы.Видимость = ВидимостьОплат;
ОплатаТовары = Ложь; ОплатаРаботы = Ложь;
Если ВидимостьОплат Тогда
ОплатаТовары = (ПолнаяСуммаПоСделке = Сделка.СуммаДокумента) Или (ПолнаяСуммаПоСделке = Сделка.Товары.Итог("СуммаВсего"));
ОплатаРаботы = (ПолнаяСуммаПоСделке = Сделка.СуммаДокумента) Или (ПолнаяСуммаПоСделке = Сделка.Работы.Итог("СуммаВсего"));
КонецЕсли;
ЭлементыФормы.СуммаПоСделке.Доступность = ОплатаТовары И ОплатаРаботы; //-МВ
КонецПроцедуры

Процедура ПолнаяОплатаПоСделкеПриИзменении(Элемент)
Если ПолнаяОплатаПоСделке Тогда
СуммаДляОплаты=ПолнаяСуммаПоСделке;
//ЭтаФорма.ОбработкаРеквизита("СуммаДокумента",, ЭтаФорма);
ПересчитатьСумуНДС();
ЭлементыФормы.СуммаДляОплаты.Доступность=Ложь;
ЭлементыФормы.СтавкаНДС.Доступность=Ложь;
ЭлементыФормы.СуммаНДС.Доступность=Ложь;
Иначе
ЭлементыФормы.СуммаДляОплаты.Доступность=Истина;
ЭлементыФормы.СтавкаНДС.Доступность=Истина;
ЭлементыФормы.СуммаНДС.Доступность=Истина;
КонецЕсли;
ВидимостьОплат = ТипЗнч(Сделка) = Тип("ДокументСсылка.ЗаказНаряд"); //+МВ 15.11.2017
ЭлементыФормы.ОплатаТовары.Видимость = ВидимостьОплат;
ЭлементыФормы.ОплатаРаботы.Видимость = ВидимостьОплат; //-МВ
КонецПроцедуры[/CODE]Внесены изменения в модуль обработки Фронт кассира в процедуру ОплатитьДокумент(Документ):[CODE]// Процедура оплатить документ
//
//Параметры:
//  Документ -
//
Процедура ОплатитьДокумент(Документ) Экспорт
// Проверим тип переданного объекта
Если НЕ (Метаданные.Документы.ЧекНаОплату.ВводитсяНаОсновании.Содержит(Документ.Метаданные()) ИЛИ ТипЗнч(Документ)=Тип("ДокументСсылка.ПриходныйКассовыйОрдер") ИЛИ ТипЗнч(Документ)=Тип("ДокументСсылка.РасходныйКассовыйОрдер")) Тогда
Возврат;
КонецЕсли;

// Если ТипЗнч(Документ) <> Тип("ДокументСсылка.ПриходныйКассовыйОрдер") //+МВ 27.09.2017 пока отказались от использования "Чек на оплату"
//   И ТипЗнч(Документ) <> Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
// #Если Клиент Тогда
// Предупреждение("Пробитие чека пока возможна только из кассовых документов!", 10);
// #КонецЕсли
// Возврат;
// КонецЕсли; //-МВ 15.11.2017

// Вызываем обработчик выбора чека на оплату
Если ТипЗнч(Документ)=Тип("ДокументСсылка.ЧекНаОплату") Тогда
Если Документ.ХозОперация=Справочники.ХозОперации.ЧекНаОплату Тогда
Если Документ.Проведен Тогда
РежимВыбора = "ВыборДокументаНаОплатуВозврат";
ЗначениеВыбора = Документ;
ПолнаяСуммаПоСделке = Документ.СуммаДокумента;
ИначеЕсли Документ.НомерЧека <= 0 Тогда //+МВ 30.09.2017
Если НЕ Документ.ДляПробитияНаФР Тогда
Предупреждение("Данный документ не предназначен для пробития на фискальном регистраторе. Установите признак документа ""Для пробития на фискальном регистраторе"" для возможности продолжения операции."+Символы.ПС+"Выполнение операции прервано.");
Возврат;
КонецЕсли; //-МВ
РежимВыбора = "ВыборДокументаНаОплату";
ЗначениеВыбора = Документ;
ПолнаяСуммаПоСделке = Документ.СуммаДокумента;
Иначе //+МВ 30.09.2017
Предупреждение("Данный документ уже был пробит на фискальном регистраторе. Повторное выполнение операции запрещено."+Символы.ПС+"Выполнение операции прервано.");
Возврат; //-МВ
КонецЕсли;
ИначеЕсли Документ.ХозОперация=Справочники.ХозОперации.ЧекНаОплатуВозврат Тогда
Если Документ.Проведен Тогда //+МВ 30.09.2017
Предупреждение("На основании возврата по документу <Чек на оплату> нельзя вводить чеки на оплату."+Символы.ПС+"Выполнение операции прервано.");
Возврат;
ИначеЕсли Документ.НомерЧека <= 0 Тогда //+МВ 30.09.2017
Если НЕ Документ.ДляПробитияНаФР Тогда
Предупреждение("Данный документ не предназначен для пробития на фискальном регистраторе. Установите признак документа ""Для пробития на фискальном регистраторе"" для возможности продолжения операции."+Символы.ПС+"Выполнение операции прервано.");
Возврат;
КонецЕсли;
РежимВыбора = "ВыборДокументаНаОплатуВозврат";
ЗначениеВыбора = Документ;
ПолнаяСуммаПоСделке = Документ.СуммаДокумента;
Иначе
Предупреждение("Данный документ уже был пробит на фискальном регистраторе. Повторное выполнение операции запрещено."+Символы.ПС+"Выполнение операции прервано.");
Возврат; //-МВ
КонецЕсли;
КонецЕсли;

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

Если ЗначениеЗаполнено(Документ.ДокументОснование) И дкДокументЕстьРеквизитШапки("ТипЦен", Документ.ДокументОснование.Метаданные().Имя)
И НЕ Документ.ДокументОснование.ТипЦен.ЦенаВключаетНДС Тогда
Сообщить("Тип цен документа основания не включает НДС!");
КонецЕсли;

Иначе
// Произведем формирование чека на оплату по указанному документу
ЧекНаОплату = Документы.ЧекНаОплату.СоздатьДокумент();

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

Если дкДокументЕстьРеквизитШапки("ТипЦен", Документ.Метаданные().Имя)
И НЕ Документ.ТипЦен.ЦенаВключаетНДС Тогда
Сообщить("Тип цен документа не включает НДС!");
КонецЕсли;

ЧекНаОплату.Заполнить(Документ);

РежимВыбора = "ВыборДокументаНаОплату";
ЗначениеВыбора = ЧекНаОплату;

Если ЧекНаОплату.СуммаДокумента = 0 Тогда //+МВ 20.12.2017
Возврат;
КонецЕсли;
ПолнаяСуммаПоСделке = обПересчет(Документ.СуммаДокумента, Документ.ВалютаДокумента, Документ.КурсДокумента, ЧекНаОплату.ВалютаДокумента, ЧекНаОплату.Дата, РежимОкругления.Окр15как20);
ПолнаяСуммаПоСделке = ?(ТипЗнч(Документ) = Тип("ДокументСсылка.ЗаказНаряд"), ЧекНаОплату.СуммаДокумента, ПолнаяСуммаПоСделке); //+МВ 15.11.2017

КонецЕсли;

// Произведем инициализацию формы фронта
ФормаФронта = Обработки.ФронтКассира.ПолучитьФорму("ФормаМенеджера");
НовыйЧекНаОплату=Неопределено;

// Попросим пользователя подтвердить сумму оплаты
СуммаДляОплаты = МАКС(ЗначениеВыбора.СуммаДокумента, 0);
СтавкаНДСЧекаНаОплату = ЗначениеВыбора.СтавкаНДС;
СуммаНДСЧекаНаОплату  = МАКС(ЗначениеВыбора.СуммаНДС, 0);
Если ТипЗнч(Документ) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") //+МВ 15.11.2017
Или (ТипЗнч(Документ) = Тип("ДокументСсылка.ЧекНаОплату")
  И Документ.ХозОперация = Справочники.ХозОперации.ЧекНаОплату) Тогда
// Проверим сумму к оплате
Если СуммаДляОплаты=0 Тогда
Предупреждение("Сумма к оплате по данной сделке нулевая. Выполнение операции прервано.");
Возврат;
КонецЕсли;
ПолнаяОплатаПоСделке=Документ.ПолнаяОплатаПоСделке;
ИначеЕсли ТипЗнч(Документ)=Тип("ДокументСсылка.РасходныйКассовыйОрдер") //+МВ 15.11.2017
Или (ТипЗнч(Документ) = Тип("ДокументСсылка.ЧекНаОплату")
  И Документ.ХозОперация = Справочники.ХозОперации.ЧекНаОплатуВозврат) Тогда
// Проверим сумму к возврату
Если СуммаДляОплаты=0 Тогда
Предупреждение("Сумма к возврату по данной сделке нулевая. Выполнение операции прервано.");
Возврат;
КонецЕсли;
ПолнаяОплатаПоСделке=Документ.ПолнаяОплатаПоСделке;
Иначе
// Создаем и заполняем форму корректировки оплаты
ФормаКорректировки = ПолучитьФорму("КорректировкаСуммыОплаты", ФормаФронта);
ФормаКорректировки.СуммаПоСделке       = ?(СуммаДляОплаты=0, Документ.СуммаДокумента, СуммаДляОплаты);
ФормаКорректировки.СуммаДляОплаты      = СуммаДляОплаты;
ФормаКорректировки.ПолнаяСуммаПоСделке = ПолнаяСуммаПоСделке;
ФормаКорректировки.СтавкаНДС           = СтавкаНДСЧекаНаОплату;
ФормаКорректировки.СуммаНДС            = СуммаНДСЧекаНаОплату;
Если СуммаДляОплаты=Документ.СуммаДокумента Тогда
ПолнаяОплатаПоСделке=Истина;
Иначе
ПолнаяОплатаПоСделке=Ложь;
КонецЕсли;
ФормаКорректировки.Сделка = Документ;

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

// Открываем форму и обрабатываем результат
Если обЗначениеНеЗаполнено(ФормаКорректировки.ОткрытьМодально()) Тогда
Возврат;
Иначе
НовыйЧекНаОплату=Документы.ЧекНаОплату.СоздатьДокумент();
Если ТипЗнч(Документ) = Тип("ДокументСсылка.ЗаказНаряд") Тогда //+МВ 28.12.2017
ЗаполнятьТовары = Документ.Товары.Итог("СуммаВсего") = ФормаКорректировки.ПолнаяСуммаПоСделке Или Документ.СуммаДокумента = ФормаКорректировки.ПолнаяСуммаПоСделке;
ЗаполнятьРаботы = Документ.Работы.Итог("СуммаВсего") = ФормаКорректировки.ПолнаяСуммаПоСделке Или Документ.СуммаДокумента = ФормаКорректировки.ПолнаяСуммаПоСделке;
орОбработкаЗаполнения_ЗаказНаряд_ЧекНаОплату(НовыйЧекНаОплату, Документ, Ложь,, ЗаполнятьТовары, ЗаполнятьРаботы, Ложь);
Иначе
НовыйЧекНаОплату.Заполнить(Документ);
КонецЕсли; //-МВ
НовыйЧекНаОплату.ПолнаяОплатаПоСделке=ФормаКорректировки.ПолнаяОплатаПоСделке;
ЗаполнитьЗначенияСвойств(ЭтотОбъект,НовыйЧекНаОплату);
СуммаДляОплаты = ФормаКорректировки.СуммаДляОплаты;
СтавкаНДСЧекаНаОплату = ФормаКорректировки.СтавкаНДС;
СуммаНДСЧекаНаОплату = ФормаКорректировки.СуммаНДС;
КонецЕсли;
КонецЕсли;

// Производим открытие формы фронта
Если ФормаФронта.Открыта() Тогда
ФормаФронта.Активизировать();

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

// Проверим произошло ли открытие формы
Если НЕ ФормаФронта.Открыта() Тогда
Возврат;
КонецЕсли;

// Переводим фронт в режим "Оплаты"
ФормаФронта.ИзменитьРежим("ЧекНаОплату");
ФормаФронта.УправлениеИнтерфейсом();

// Производим установку переданного документа
ФормаФронта.ПерейтиВРежим(РежимВыбора);
ФормаФронта.ОбработкаВыбораФронта(?(НовыйЧекНаОплату = Неопределено, ЗначениеВыбора, НовыйЧекНаОплату), Неопределено, ФормаФронта); //+МВ 28.12.2017
ФормаФронта.ВыйтиИзРежима(РежимВыбора);

// Произведем установку нового режима
Если ФормаФронта.ХозОперация=Справочники.ХозОперации.ЧекНаОплатуВозврат Тогда
ФормаФронта.УстановитьРежим("ЧекНаОплатуВозврат");
ИначеЕсли ФормаФронта.ХозОперация=Справочники.ХозОперации.ПриходныйКассовыйОрдер Тогда
ФормаФронта.УстановитьРежим("ПриходныйКассовыйОрдер");
ИначеЕсли ФормаФронта.ХозОперация=Справочники.ХозОперации.РасходныйКассовыйОрдер Тогда
ФормаФронта.УстановитьРежим("РасходныйКассовыйОрдер");
Иначе
ФормаФронта.УстановитьРежим("ЧекНаОплату");
КонецЕсли;

// Произведем корректировку суммы оплаты
ФормаФронта.СуммаДокумента = СуммаДляОплаты;
ФормаФронта.ОбработкаРеквизита("СуммаДокумента",, ФормаФронта);
ФормаФронта.СуммаНДСЧекаНаОплату = СуммаНДСЧекаНаОплату;
ФормаФронта.СтавкаНДСЧекаНаОплату = СтавкаНДСЧекаНаОплату;
ФормаФронта.ПолнаяОплатаПоСделке = ПолнаяОплатаПоСделке;

// Обновим индикаторы формы
ФормаФронта.УправлениеИнтерфейсом();
КонецПроцедуры[/CODE]
Отбитие чеков по заказ-нарядам при различных СНО, Отбитие чеков по заказ-нарядам при различных СНО для товаров и работ
 
[QUOTE]Михаил Волков [URL=https://rarus.ru/forum/messages/forum7/topic11493/message80834/#message80834]написал[/URL]:
Делал доработку, чтобы при оплате заказ-наряда его табличные части: Товары и Работы оплачивались как различные документы, если СНО у них различные. Могу поделиться.[/QUOTE]
[QUOTE]Данил Василига [URL=https://rarus.ru/forum/messages/forum7/topic11493/message81758/#message81758]написал[/URL]:
Можете поделиться Вашей доработкой по пробитию двух чеков из одного заказ-наряда?[/QUOTE]
Сразу предупреждаю, доработка сделана в Альфа-Авто 4.1 (принципиальных отличий в Альфа-Авто 5 нет, если появляется в ней что-то интересное для нашего автосервиса, то переношу в 4.1).
Внесены изменения в функциу орОбработкаЗаполнения_ЗаказНаряд_ЧекНаОплату(), добавлены параметры ЗаполнятьТовары, ЗаполнятьРаботы  и КонтрольЧастичнойОплаты:[CODE]// Функция выполняет заполнение ЧекНаОплату на основании ЗН
// Параметры:
// ЭтотОбъект  - Документ для заполнения
// Основание   - Документ основание
// Копирование - Признак копирования
//
Функция орОбработкаЗаполнения_ЗаказНаряд_ЧекНаОплату(ЭтотОбъект,Основание,Копирование, ЗаполнятьТабличныеЧасти = Истина, ЗаполнятьТовары = Истина, ЗаполнятьРаботы = Истина, КонтрольЧастичнойОплаты = Истина) Экспорт //+МВ 30.09.2017
Если Не мвДоработки.ЧекНаОплатуПоЗаказНаряд(ЭтотОбъект, Основание, ЗаполнятьТовары, ЗаполнятьРаботы, КонтрольЧастичнойОплаты) Тогда //+МВ 15.11.2017
Возврат Ложь;
КонецЕсли; //-МВ
дкОбработкаЗаполненияПоУмолчанию(ЭтотОбъект, Основание, Копирование, ЗаполнятьТабличныеЧасти);
Если (НЕ обЗначениеНеЗаполнено(Основание)) И (обЗначениеНеЗаполнено(ЭтотОбъект.ДокументОснование)) Тогда
ЭтотОбъект.ДокументОснование=Основание;
КонецЕсли;

ВалютаОснования = Основание.ВалютаДокумента;
КурсОснования   = Основание.КурсДокумента;
Пересчет = (ВалютаОснования <> ЭтотОбъект.ВалютаДокумента)ИЛИ(КурсОснования <> ЭтотОбъект.КурсДокумента);

ЭтотОбъект.Товары.Очистить();
Для Каждого СтрокаТоваров Из Основание.Товары Цикл
Если ЗаполнятьТовары //+МВ 30.09.2017
 И (СтрокаТоваров.Источник=Перечисления.ЗаказНарядНоменклатураИсточник.ДетальСоСклада ИЛИ
СтрокаТоваров.Источник=Перечисления.ЗаказНарядНоменклатураИсточник.ДетальЗаказывается) Тогда
НоваяСтрокаСчета=ЭтотОбъект.Товары.Добавить();
НоваяСтрокаСчета.Номенклатура=СтрокаТоваров.Номенклатура;
НоваяСтрокаСчета.Количество=СтрокаТоваров.Количество;
НоваяСтрокаСчета.ЕдиницаИзмерения=СтрокаТоваров.ЕдиницаИзмерения;
НоваяСтрокаСчета.Коэффициент=СтрокаТоваров.Коэффициент;
НоваяСтрокаСчета.Цена=СтрокаТоваров.Цена;
НоваяСтрокаСчета.Сумма=СтрокаТоваров.Сумма;
НоваяСтрокаСчета.СтавкаНДС=СтрокаТоваров.СтавкаНДС;
НоваяСтрокаСчета.СуммаНДС=СтрокаТоваров.СуммаНДС;
НоваяСтрокаСчета.ПроцентСкидки=СтрокаТоваров.ПроцентСкидки;
НоваяСтрокаСчета.СуммаСкидки=СтрокаТоваров.СуммаСкидки;
НоваяСтрокаСчета.СкидкаНаТовар=СтрокаТоваров.СкидкаНаТовар;
НоваяСтрокаСчета.ПроцентСкидкиСтроки=СтрокаТоваров.ПроцентСкидкиСтроки;
НоваяСтрокаСчета.СуммаСкидкиСтроки=СтрокаТоваров.СуммаСкидкиСтроки;
НоваяСтрокаСчета.СуммаВсего=СтрокаТоваров.СуммаВсего;
НоваяСтрокаСчета.ХарактеристикаНоменклатуры=СтрокаТоваров.ХарактеристикаНоменклатуры;
КонецЕсли;
КонецЦикла;

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

Если (обЗначениеНеЗаполнено(ЭтотОбъект.СкидкаНаценка)) И (НЕ обЗначениеНеЗаполнено(Основание.СкидкаНаценкаРаботы)) Тогда
ЭтотОбъект.СкидкаНаценка=Основание.СкидкаНаценкаРаботы;
КонецЕсли;
ЭтотОбъект.ЗначениеСкидкиНаценки=ЭтотОбъект.ЗначениеСкидкиНаценки+Основание.ЗначениеСкидкиНаценкиРабот;

//Подсчет новой суммы документа назначения
ЭтотОбъект.СуммаДокумента=ЭтотОбъект.Товары.Итог("СуммаВсего");

Возврат Истина;
КонецФункции // орОбработкаЗаполнения_ЗаказНаряд_ЧекНаОплату()[/CODE]Места где внесены мною изменения отмечены: //+МВ Дата - начало изменений, и //-МВ - конец, если изменено/добавлено более одной строки. Обычно более 3 строк не добавляю, если требует больше, то изменения выношу в функцию в свой общий модуль мвДоработки, а в коде - обращение к этой функции. Функция ЧекНаОплатуПоЗаказНаряд(Документ, Основание, ЗаполнятьТовары, ЗаполнятьРаботы, Спрашивать) и другие:[CODE]// Возвращает Истина для разных СНО товаров и работ заказ-наряда
//
Функция РазныеСНОЗаказНаряда(Документ, Товары = Ложь, Работы = Ложь) Экспорт

Товары = Документ.Товары.Итог("СуммаВсего") > 0;
Работы = Документ.Работы.Итог("СуммаВсего") > 0;
ТоварыНДС = Документ.Товары.Итог("СуммаНДС") > 0;
РаботыНДС = Документ.Работы.Итог("СуммаНДС") > 0;
Если Не(Товары И Работы) Или (ТоварыНДС = РаботыНДС) Тогда
Возврат Ложь;
КонецЕсли;
Если ТоварыНДС И ЕстьРаботаСНДСЗаказНаряда(Документ, Истина) Тогда
Возврат Ложь; // А если не все товары с НДС?
КонецЕсли;
Возврат Истина;

КонецФункции // РазныеСНОЗаказНаряда()

// Возвращает Истина, если заказ-наряд оплачен не полностью
// с уточнением какая часть не оплачена: товары и/или работы
Функция ЧекНаОплатуПоЗаказНаряд(Документ, Основание, ЗаполнятьТовары = Истина, ЗаполнятьРаботы = Истина, Спрашивать = Истина) Экспорт
Если Не Спрашивать Тогда Возврат Истина; КонецЕсли;
Если ТипЗнч(Документ.Ссылка) <> Тип("ДокументСсылка.ЧекНаОплату")
Или ТипЗнч(Основание) <> Тип("ДокументСсылка.ЗаказНаряд") Тогда
Возврат Ложь;
КонецЕсли;
Подчиненный = Неопределено;
Если Документ.ЭтоНовый() Тогда
// Проверим наличие других оплат заказ-наряда
ПолностьюОплачен = Ложь;
Если ПодчиненныйДокумент(Основание, "ОплатаНаличными", Подчиненный) Тогда
Если ЧастичноОплачен(Подчиненный, Основание, Спрашивать) Тогда
Возврат Ложь;
КонецЕсли;
СуммаОплаты = ?(Подчиненный.ПолнаяОплатаПоСделке, Подчиненный.СуммаДокумента, 0);
Если СуммаОплаты >= Основание.СуммаДокумента Тогда
ПолностьюОплачен = Истина;
ИначеЕсли ПодчиненныйДокумент(Основание, "ОплатаНаличными", Подчиненный)
И СуммаОплаты + ?(Подчиненный.ПолнаяОплатаПоСделке, Подчиненный.СуммаДокумента, 0) >= Основание.СуммаДокумента Тогда
ПолностьюОплачен = Истина;
ИначеЕсли Спрашивать И ЧастичноОплачен(Подчиненный, Основание) Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Если ПолностьюОплачен Тогда
Если Подчиненный.Проведен Тогда
ТекстСообщения = "'" + СокрЛП(Основание) + "' полностью оплачен, ввод оплаты отменен.";
#Если Клиент Тогда
Предупреждение(ТекстСообщения, 30, "Ошибка!");
#Иначе
Сообщить(ТекстСообщения, СтатусСообщения.Внимание);
#КонецЕсли
ИначеЕсли Спрашивать Тогда
Ответ = Вопрос("По основанию '" + СокрЛП(Основание) + "' уже имеется
  |не проведенный подчиненный документ '" + СокрЛП(Подчиненный) + "'.
  |Открыть документ?", РежимДиалогаВопрос.ДаНет, 60);
Если Ответ = КодВозвратаДиалога.Да Тогда
Подчиненный.ПолучитьФорму().Открыть();
КонецЕсли;
КонецЕсли;
Возврат Ложь;
КонецЕсли;
ИначеЕсли Документ.Товары.Количество() > 0 Тогда
ЕстьТовары = Ложь; ЕстьРаботы = Ложь;
Для каждого Строка Из Документ.Товары Цикл
ЕстьТовары = ?(Строка.Номенклатура = Справочники.Номенклатура.Авторабота, ЕстьТовары, Истина);
ЕстьРаботы = ?(Строка.Номенклатура = Справочники.Номенклатура.Авторабота, Истина, ЕстьРаботы);
Если ЕстьТовары И ЕстьРаботы Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьТовары <> ЕстьРаботы Тогда
ЗаполнятьТовары = ЕстьТовары;
ЗаполнятьРаботы = ЕстьРаботы;
Возврат Истина;
КонецЕсли;
КонецЕсли;
Если Подчиненный <> Неопределено Тогда
Если Подчиненный.СуммаДокумента = Основание.Товары.Итог("СуммаВсего") Тогда
ЗаполнятьТовары = Ложь;
Возврат Истина;
ИначеЕсли Подчиненный.СуммаДокумента = Основание.Работы.Итог("СуммаВсего") Тогда
ЗаполнятьРаботы = Ложь;
Возврат Истина;
КонецЕсли;
Если ПодчиненныйДокумент(Основание, "ОплатаНаличными", Подчиненный) Тогда
Если Подчиненный.СуммаДокумента = Основание.Товары.Итог("СуммаВсего") Тогда
ЗаполнятьТовары = Ложь;
Возврат Истина;
ИначеЕсли Подчиненный.СуммаДокумента = Основание.Работы.Итог("СуммаВсего") Тогда
ЗаполнятьРаботы = Ложь;
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЗаполнятьТовары И ЗаполнятьРаботы И РазныеСНОЗаказНаряда(Основание, ЗаполнятьТовары, ЗаполнятьРаботы) Тогда
// Если Спрашивать Тогда
Ответ = Вопрос("В '" + СокрЛП(Основание) + "' различные СНО" + Символы.ПС + "Сперва оплатить работы: "
+ Основание.Работы.Итог("СуммаВсего") + " " + СокрЛП(Основание.ВалютаДокумента) + "? (Нет - товары: "
+ Основание.Товары.Итог("СуммаВсего") + " " + СокрЛП(Основание.ВалютаДокумента) + ")", РежимДиалогаВопрос.ДаНетОтмена, 30);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Возврат Ложь;
ИначеЕсли Ответ <> КодВозвратаДиалога.Нет Тогда
ЗаполнятьТовары = Ложь;
Иначе
ЗаполнятьРаботы = Ложь;
КонецЕсли;
// Иначе
// ЗаполнятьТовары = Ложь; // Предпочтем 1-ми оплатить работы (товары обычно безналично оплачивают)
// КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции // ЧекНаОплатуПоЗаказНаряд()

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

// Возвращает Истина, если документ оплаты не "Полная оплата по сделке"
//
Функция ЧастичноОплачен(Документ, Основание, Спрашивать = Истина) Экспорт

Подчиненный = Неопределено;
Если Документ.ПолнаяОплатаПоСделке Тогда
Возврат Ложь;
ИначеЕсли ПодчиненныйДокумент(Документ, ?(ТипЗнч(Документ) = Тип("ДокументСсылка.ЧекНаОплату"), "ЧекНаОплату", "РасходныйКассовыйОрдер"), Подчиненный)
И Подчиненный.ХозОперация = ?(ТипЗнч(Документ) = Тип("ДокументСсылка.ЧекНаОплату"), Справочники.ХозОперации.ЧекНаОплатуВозврат, Справочники.ХозОперации.РасходныйКассовыйОрдер)
И Подчиненный.СуммаДокумента >= Документ.СуммаДокумента Тогда
Возврат Ложь;
КонецЕсли;
Если Спрашивать Тогда
Ответ = Вопрос("По основанию '" + СокрЛП(Основание) + "' " + ДопНаименованиеДокумента(Документ) + "имеется
  |частичная оплата '" + СокрЛП(Документ) + "' на сумму: " + Документ.СуммаДокумента + " " + Документ.ВалютаДокумента + ".
  |Открыть документ для оформления чека возврата (Да),
  |или продолжить создание документа оплаты? (Нет)", РежимДиалогаВопрос.ДаНетОтмена, 30);
Если Ответ = КодВозвратаДиалога.Да Тогда
Документ.ПолучитьФорму().Открыть();
ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда
Спрашивать = Ложь;
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции // ЧастичноОплачен()

// Возвращает Истина, если заказ-наряд полность оплачен
//
Функция ПолностьюОплачен(Документ) Экспорт

Если ТипЗнч(Документ) <> Тип("ДокументСсылка.ЗаказНаряд") Тогда
Возврат Ложь;
КонецЕсли;
Подчиненный = Неопределено;
Если ПодчиненныйДокумент(Документ, "ОплатаНаличными", Подчиненный) Тогда
Если ЧастичноОплачен(Подчиненный, Документ) Тогда
Возврат Ложь;
КонецЕсли;
СуммаОплаты = Подчиненный.СуммаДокумента;
Если СуммаОплаты >= Документ.СуммаДокумента Тогда
ИначеЕсли ПодчиненныйДокумент(Документ, "ОплатаНаличными", Подчиненный)
И СуммаОплаты + Подчиненный.СуммаДокумента >= Документ.СуммаДокумента Тогда
Если ЧастичноОплачен(Подчиненный, Документ) Тогда
Возврат Ложь;
КонецЕсли;
Иначе
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Возврат Истина;
КонецФункции // ПолностьюОплачен()[/CODE]При нажатии кнопки "Оплата" в заказ-наряде происходит анализ его оплаты, если он не оплачен или частично оплачен, то задается вопрос:
Изменено: Михаил Волков - 20.02.2019 17:23:41 (Добавление текста)
Вывод реестра счет-фактур в Excel. ОШИБКА.
 
[QUOTE]Михаил Волков написал:
Видимо добавить КаталогВременныхФайлов() в Надежное расположение расположение мало... что-то еще. А что?[/QUOTE]
Мне помогло следующее изменение код: после записи файла tmpxls.xls, и перед его открытием, нужно включать видимость: [CODE] ЭлементыФормы.ТабличныйДокумент.Записать(КаталогВременныхФайлов() + "tmpxls.xls", ТипФайлаТабличногоДокумента.XLS);
Excel.Visible = 1; //+dvs 19.02.2019 д.б. в этом месте, иначе не работает.
Excel.Workbooks.Open(КаталогВременныхФайлов() + "tmpxls.xls");[/CODE]
Онлайн кассы
 
[QUOTE]Артем Трущ написал:
Масло списывается, как и все прочее, в производство для выполнения работ в рамках ЕНВД. Это и оформляется заказ-нарядом. Продажа оформляется реализацией или чеком. Здесь больше вопрос к знаниям бухгалтера, чем к программе или кассе.[/QUOTE]
Не всегда так. У нас автосервис, патент (без НДС) только на выполнение работ, а запчасти по ОСН (с НДС). Поэтому изначально (при автономной кассе) отбивали по 2 чека по одному заказ-наряду. При переходе на онлайн-кассу пришлось [URL=https://rarus.ru/forum/messages/forum7/topic11493/message80834/#message80834]дорабатывать[/URL] Альфа-Авто, чтобы при отбитие чека табличные части заказ-наряда: Товары и Работы воспринимались как различные документы, в чеках ставились [URL=https://rarus.ru/forum/messages/forum7/topic11493/message73497/#message73497]различные СНО[/URL].
Вывод реестра счет-фактур в Excel. ОШИБКА.
 
Каталог D:\Users\mv\AppData\Local\Temp\3\ и D:\Users\mv\AppData\Local\Temp\ не дает сохранить в Надежное расположение. А папку D:\Users\mv\AppData\Local\ дало с галочкой "Также доверять всем вложенным папкам". Но [URL=https://rarus.ru/forum/messages/forum7/topic10978/message81681/#message81681]Неизвестная ошибка[/URL] осталась. Видимо добавить КаталогВременныхФайлов() в Надежное расположение расположение мало... что-то еще. А что?
Вывод реестра счет-фактур в Excel. ОШИБКА.
 
[QUOTE]Михаил Волков написал:
Помогите разобраться в настройках безопасности Excel.[/QUOTE]
КаталогВременныхФайлов(), в который пишется tmpxls.xls, находится D:\Users\mv\AppData\Local\Temp\3\ (не знаю, как его назначает система?). А в Надежное расположение, и не дает, говорит не является допустимым!?
Вывод реестра счет-фактур в Excel. ОШИБКА.
 
[QUOTE]Алексей Коломыйченко написал:
или формат формируемых файлов (с "новыми" расширениями проблема не возникает)[/QUOTE]
Мне не помогло, теперь пишет вместо Неизвестная ошибка:[QUOTE]{ОбщаяФорма.Отчет.Форма(962)}: Ошибка при вызове метода контекста (Open)
Excel.Workbooks.Open(КаталогВременныхФайлов() + "tmpxls.xlsx"); //+МВ 14.02.2019 xls дает Неизвестная ошибка
по причине:
Произошла исключительная ситуация (Microsoft Excel): Не удается открыть файл "tmpxls.xlsx", так как формат или расширение этого файла являются недопустимыми. Убедитесь, что файл не поврежден и расширение его имени соответствует его формату.[/QUOTE]
[QUOTE]Алексей Коломыйченко написал:
Решение данной проблемы. Дело действительно оказалось в настройках безопасности Excel.Файл->Параметры->Центр управления безопасностью->Параметры центра управления безопасностью. Выбираете пункт "Надежные расположения" и добавляете папку, куда 1с-кой пишутся темповские файлы экселя (в конфигураторе; КаталогВременныхФайлов() -> "C:\Temp\").[/QUOTE]
В моем случае КаталогВременныхФайлов() файл tmpxls.xls пишет D:\Users\mv\AppData\Local\Temp\3\, в настройках безопасности Excel в пункте Надежные расположения этой папке нет. Есть Расположение Excel 2010 по умолчанию: автозагрузка пользователя D:\Users\mv\AppData\Roaming\Microsoft\Excel\XLSTART\ и шаблоны пользователя D:\Users\mv\AppData\Roaming\Microsoft\Templates\. Мне нужно добавить D:\Users\mv\AppData\Local\Temp\3\ в Надежные расположения как Каталог временных файлов? Помогите разобраться в настройках безопасности Excel.
Гарантийный ремонт
 
[QUOTE]Светлана Сулименко написал:
если у Вас вид ремонта бесплатный, то продажа будет идти по с/сти детали[/QUOTE]
Но автомобиль не является собственным, поэтому ремонт не может быть бесплатным!? Он для клиента является бесплатным, но его оплачивает гарантийный плательщик.
Изменено: Михаил Волков - 11.02.2019 12:05:12
Гарантийный ремонт
 
С некоторых пор в Анализе продаж стали замечать -100% наценки у некоторых деталей. Оказалось что эти детали использовались в заказ-нарядах при гарантийных ремонтах, где цены и суммы нулевые. Смотрю старые гарантийные заказ-наряды, в них тоже нулевые, но в движениях Продажи Суммы равны Себестоимости, а теперь нулевые. Почему, где посмотреть? Смотрю в справочнике "Гарантийный ремонт СТО": Платный, По себестоимости. Что могли изменить?
Поддержка Альфа-Авто - платформы 1С 8.3.12
 
[QUOTE]Михаил Волков написал:
Другой диапазон отличный от 15хх Вы назначили новой 8.3.13.1644 платформе или старой?[/QUOTE]
Поясню свой вопрос. У нас возникла примерно та же ситуация: новая платформа (не ниже 8.3.12) нужна лишь некоторым единичным пользователям. А основная масса пользователей остается на старой 8.3.10 платформе. А 1С по умолчанию при наличии нескольких платформ обычно запускает старшую, более последнюю платформу. В связи с этим опасаюсь, что при добавлении новой платформы придется прописывать каждому пользователю [B]ст[/B][B]арой платформы[/B] параметры запуска базы 1С (не хотелось бы, только пользователям новой).
Или зря опасаюсь? Какие тонкости необходимо соблюсти, кроме как новой платформе задать другой диапазон портов, отличный от 15хх?
Поддержка Альфа-Авто - платформы 1С 8.3.12
 
[QUOTE]Адрей Демин написал:
Я поставил на сервер вторую платформу 8.3.13.1644 для Бухгалтерии и ЗуП. Рарус остался на старой платформе 8.3.10.2580. Платформы разведены по разным портам.[/QUOTE]
Другой диапазон отличный от 15хх Вы назначили новой 8.3.13.1644 платформе или старой? Порт отличный от 1541 нужно прописывать каждому пользователю в параметрах запуска базы 1С (не хотелось бы). А новая платформа нужна лишь некоторым пользователям, остальным старая.
Поддержка Альфа-Авто - платформы 1С 8.3.12
 
[QUOTE]Coder написал:
При обновлении бухгалтерия 3.0 требует платформу не ниже 8.3.12.[/QUOTE]
В последних релизах УПП/КА1 появился обмен через [B]универсальный [/B][B]формат EntepriseData[/B]. В Альфа-Авто такой планируется для обмена с БП3.0 и другими конфигурациями 8.3?
Переход на ставку 20% в конфигурации Альфа-Авто, Переход на ставку 20% в конфигурации Альфа-Авто - презентация
 
Кстати, по поводу:[QUOTE]«Пересчитать по цене» – обработка заменяет ставки и пересчитывает итоговые суммы в табличных строках документов, увеличивая их соответственно изменению самой ставки. Данный вариант рекомендуется использовать в случае, когда в типах цен, используемых в документах, [I]цена не включает НДС[/I].[/QUOTE]
У нас используются [B]цены включая НДС[/B]. Ставка НДС увеличилась, и цены соответственно тоже на ≈ 2 % ([URL=https://rarus.ru/forum/messages/forum7/topic11493/message80768/#message80768]точнее 1.695[/URL]). Поэтому пришлось переоценить товар. Поэтому при Обновление ставки НДС пришлось использовать именно этот пункт «Пересчитать по цене». А в саму обработку добавить функцию обПолучитьЦену():[CODE] Если РежимУстановкиСтавкиНДС = 2 Тогда
СтрокаТЧ.Цена=обПолучитьЦену(ДокументОбъект.ТипЦен,СтрокаТЧ.Номенклатура,ТекущаяДата(),,ДокументОбъект.ВалютаДокумента,ДокументОбъект.КурсДокумента,СтрокаТЧ.ХарактеристикаНоменклатуры,СтрокаТЧ.ЕдиницаИзмерения,ДокументОбъект.ПодразделениеКомпании);
ДокументОбъект.ОбработкаРеквизита(ВыборкаСтрокТЧ.ИмяТЧ+".Цена",СтрокаТЧ);
ИначеЕсли РежимУстановкиСтавкиНДС = 3 Тогда
ДокументОбъект.ОбработкаРеквизита(ВыборкаСтрокТЧ.ИмяТЧ+".СуммаВсего",СтрокаТЧ);
КонецЕсли;
[/CODE]
Переход на ставку 20% в конфигурации Альфа-Авто, Переход на ставку 20% в конфигурации Альфа-Авто - презентация
 
[QUOTE]Константин Кайгородов написал:
а где взять обработку ?[/QUOTE]
В последних релизах для Альфа-Авто 5.1 (для 4.1 чуть подправить пришлось).
Онлайн кассы
 
[QUOTE]Александр Шеховцов написал:
При закрытии смены в кассовом чеке ставка ндс выводится 18%.[/QUOTE]
Это проблема АТОЛ: [URL=http://forum.atol.ru/index.php?showtopic=36941]Чеки пробиваются правильно - 20%, а в Z-отчете все равно 18%[/URL], пока не решенная.

Онлайн кассы
 
[QUOTE]Сергей Антонов написал:
Ошибка: Сумма налога больше суммы регистраций по чеку и/или итога.
В чем может быть проблема?[/QUOTE]
А ЦТО Вам КЗ10 ставило? (встречал такую на Волшебном форуме [URL=https://www.forum.mista.ru/topic.php?id=831242&page=2#123]Чек 20 %НДС[/URL])
Тоже ждем... Кстати, по настройкам оборудования можно определить правильную установку КЗ10?
Онлайн кассы
 
[QUOTE]Михаил Волков написал:
Странно, в отбитых чеках (и  в ОФД ) наименование ставок НДС 20%, а суммы НДС посчитаны по ставке НДС 18%!?[/QUOTE]
Извиняюсь, только в чеках ОФД такое, в бумажных чеках все по ставке 18%. Видать ЦТО еще не поставило КЗ10.
Онлайн кассы
 
Странно, в отбитых чеках (и [URL=https://receipt.taxcom.ru/v01/show?id=2740BD64-3F67-4776-8935-CCE8ED768855]в ОФД[/URL]) наименование ставок НДС 20%, а суммы НДС посчитаны по ставке НДС 18%!? В самих документах: Чек на оплату и основаниях суммы НДС стоят по ставке НДС 20%. В ЦТО обращаться?
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 14 След.
Услуги «1С» для малого и среднего бизнеса
Заинтересованы в сотрудничестве?
Нужна консультация?
Свяжитесь с нами!
Заказать обратный звонок
1c@rarus.ru
Для отображения персонализированного контента и рекламных сообщений, а также хранения личных настроек на локальном компьютере веб-сайты «1С-Рарус» используют технологию cookie и аналогичные. Продолжив использование наших веб-сайтов, Вы даете согласие на обработку персональных данных, выражаете согласие с Политикой конфиденциальности rarus.ru и применением этих технологий.
Продолжив использование веб-сайтов «1С-Рарус», Вы даете согласие на обработку персональных данных, выражаете согласие с Политикой конфиденциальности.
Facebook Vkontakte Youtube Instagram