Материал: Автоматизация документооборота сервисного центра в системе «1С: Управление нашей фирмой» в компании «5 звёзд» (ИП Руксов А.Г.)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
72
- Ставка НДС ставка налога на добавленную стоимость. Выбирается из
справочника «Ставки НДС».
- Сумма НДС сумма налога на добавленную стоимость по данной строке.
- Всего поле, автоматически заполняемое суммарной
стоимостью запасов согласно настройкам цен и валют. Настройки
устанавливаются в диалоге, вызываемом по гиперссылке «Редактировать
цены и валюту».
- Спецификация. Определяет вариант изготовления заказываемой
продукции.
- Содержание представление запаса в печатной форме. Чтобы реквизит
стал видимым, необходимо выполнить «Все действия» «Изменить
форму и установить флаг напротив реквизита.
73
2.3.4. Описание программных модулей
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
// Серийные номера
Если РаботаССерийнымиНомерами.ИспользоватьСерийныеНомераОстатки() = Истина
И ЭтотОбъект.Номенклатура.ИспользоватьСерийныеНомера Тогда
ПроверяемыеРеквизиты.Добавить("СерийныйНомер");
КонецЕсли;
Если НЕ
Константы.ФункциональнаяОпцияУчетПоНесколькимНаправлениямДеятельности.Получить()
Тогда
Если РемонтВыполнен Тогда
ПроверяемыеРеквизиты.Добавить("НаправлениеДеятельности");
КонецЕсли;
КонецЕсли;
Если ПередачаВСервисныйЦентр И ВариантРемонта =
Перечисления.ВариантыРемонта.СервисЦентр Тогда
ПроверяемыеРеквизиты.Добавить("СервисЦентр");
КонецЕсли;
Если ВыдачаИзРемонта И (НЕ РемонтВыполнен) Тогда
Если ВариантРемонта = Перечисления.ВариантыРемонта.СервисЦентр Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Не
установлен ""Принят из сервисного центра""!'"));
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru =
'Не установлен ""Ремонт выполнен""!'"));
КонецЕсли;
Отказ = Истина;
КонецЕсли;
Если РемонтВыполнен И ВариантРемонта =
Перечисления.ВариантыРемонта.СервисЦентр И (НЕ ПередачаВСервисныйЦентр) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Не
установлен ""Передан в сервисный центр""!'"));
Отказ = Истина;
КонецЕсли;
Если ПередачаВСервисныйЦентр И РемонтВыполнен И ДатаПередачаВСервисныйЦентр
> ДатаРемонтВыполнен Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Дата
передачи в сервисный центр не может быть больше даты приема из сервисного
центра!'"));
Отказ = Истина;
КонецЕсли;
Если РемонтВыполнен И ВыдачаИзРемонта И ДатаРемонтВыполнен >
ДатаВыдачаИзРемонта Тогда
74
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Дата
выпонения ремонта не может быть больше даты выдачи из ремонта!'"));
Отказ = Истина;
КонецЕсли;
Если ПередачаВСервисныйЦентр И Дата > ДатаПередачаВСервисныйЦентр Тогда
Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
//Если пользователь установил ДатаПередачаВСервисныйЦентр в
новом документе до записи, она будет меньше даты и времени записи документа
Дата = ДатаПередачаВСервисныйЦентр;
Иначе
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru =
'Дата передачи в сервисный центр не может быть меньше даты приема в ремонт (даты
документа)!'"));
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Номенклатура) и
Номенклатура.ПроверятьЗаполнениеХарактеристики и Не
ЗначениеЗаполненоарактеристика)
Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Для
данной номенклатуры, заполнение поля характеристики является обезательным!'"));
Отказ = Истина;
КонецЕсли;
РасчетыРаботаСФормамиВызовСервера.ПроверитьЗаполнениеДокументаПредоплаты(Кон
трагент, ПроверяемыеРеквизиты);
КонецПроцедуры
// Процедура - обработчик события ОбработкаПроведения объекта.
//
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// Инициализация дополнительных свойств для проведения документа
УправлениеНебольшойФирмойСервер.ИнициализироватьДополнительныеСвойстваДляПро
ведения(Ссылка, ДополнительныеСвойства);
// Инициализация данных документа
Документы.ПриемИПередачаВРемонт.ИнициализироватьДанныеДокумента(Ссылка,
ДополнительныеСвойства);
// Подготовка наборов записей
УправлениеНебольшойФирмойСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений
(ЭтотОбъект);
// Отражение в разделах учета.
УправлениеНебольшойФирмойСервер.ОтразитьТоварыВРемонте(ДополнительныеСвойств
а, Движения, Отказ);
// СерийныеНомера
УправлениеНебольшойФирмойСервер.ОтразитьСерийныеНомераГарантии(Дополнительны
еСвойства, Движения, Отказ);
Если (ДополнительныеСвойства.ВариантРемонта =
Перечисления.ВариантыРемонта.НашаМастерскаяПростойРемонт
ИЛИ ДополнительныеСвойства.ВариантРемонта =
Перечисления.ВариантыРемонта.СервисЦентр) Тогда
Если ДополнительныеСвойства.РемонтВыполнен Тогда
75
УправлениеНебольшойФирмойСервер.ОтразитьТоварыВРемонте(ДополнительныеСвойств
а, Движения, Отказ);
// СерийныеНомера
УправлениеНебольшойФирмойСервер.ОтразитьСерийныеНомераГарантии(Дополнительны
еСвойства, Движения, Отказ);
УправлениеНебольшойФирмойСервер.ОтразитьРасчетыСПокупателями(ДополнительныеС
войства, Движения, Отказ);
УправлениеНебольшойФирмойСервер.ОтразитьДоходыИРасходы(ДополнительныеСвойств
а, Движения, Отказ);
УправлениеНебольшойФирмойСервер.ОтразитьДоходыИРасходыОтложенные(Дополнитель
ныеСвойства, Движения, Отказ);
УправлениеНебольшойФирмойСервер.ОтразитьУправленческий(ДополнительныеСвойств
а, Движения, Отказ);
КонецЕсли;
УправлениеНебольшойФирмойСервер.ОтразитьОплатаСчетовИЗаказов(ДополнительныеС
войства, Движения, Отказ);
КонецЕсли;
Если ДополнительныеСвойства.ВариантРемонта =
Перечисления.ВариантыРемонта.СервисЦентр Тогда
УправлениеНебольшойФирмойСервер.ОтразитьТоварыПереданныеВРемонте(Дополнитель
ныеСвойства, Движения, Отказ);
КонецЕсли;
// Запись наборов записей
УправлениеНебольшойФирмойСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
// Контроль
Документы.ПриемИПередачаВРемонт.ВыполнитьКонтроль(Ссылка,
ДополнительныеСвойства, Отказ, Истина);
ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВреме
нныхТаблиц.Закрыть();
КонецПроцедуры
// Процедура - обработчик события ОбработкаУдаленияПроведения объекта.
//
Процедура ОбработкаУдаленияПроведения(Отказ)
// Инициализация дополнительных свойств для проведения документа
УправлениеНебольшойФирмойСервер.ИнициализироватьДополнительныеСвойстваДляПро
ведения(Ссылка, ДополнительныеСвойства);
// Подготовка наборов записей
76
УправлениеНебольшойФирмойСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений
(ЭтотОбъект);
// Запись наборов записей
УправлениеНебольшойФирмойСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
// Контроль
Документы.ПриемИПередачаВРемонт.ВыполнитьКонтроль(Ссылка,
ДополнительныеСвойства, Отказ, Истина);
КонецПроцедуры // ОбработкаУдаленияПроведения()
// Обработчик заполнения документа по структуре
//
// Параметры:
//
Процедура ЗаполнитьПоСтруктуре(ДанныеЗаполнения) Экспорт
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
СтратегияЗаполнения = Новый Соответствие;
СтратегияЗаполнения[Тип("Структура")] = "ЗаполнитьПоСтруктуре";
ЗаполнениеОбъектовУНФ.ЗаполнитьДокумент(ЭтотОбъект, ДанныеЗаполнения,
СтратегияЗаполнения);
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
УправлениеНебольшойФирмойСервер.ПриЗаписиДокументаОснованияСчетаФактуры(Ссыл
ка, ДополнительныеСвойства, Ложь);
Если РежимЗаписи = РежимЗаписиДокумента.Проведение ИЛИ РежимЗаписи =
РежимЗаписиДокумента.ОтменаПроведения Тогда
ДополнительныеСвойства.Вставить(ариантРемонта", ВариантРемонта);
ДополнительныеСвойства.Вставить("ПередачаВСервисныйЦентр",
ПередачаВСервисныйЦентр);
ДополнительныеСвойства.Вставить("ДатаПередачаВСервисныйЦентр",
ДатаПередачаВСервисныйЦентр);
ДополнительныеСвойства.Вставить("РемонтВыполнен", РемонтВыполнен);
ДополнительныеСвойства.Вставить("ДатаРемонтВыполнен",
ДатаРемонтВыполнен);
ДополнительныеСвойства.Вставить("ВыдачаИзРемонта", ВыдачаИзРемонта);
ДополнительныеСвойства.Вставить("ДатаВыдачаИзРемонта",
ДатаВыдачаИзРемонта);
ДополнительныеСвойства.Вставить("СуммаДокумента", СуммаДокумента);
КонецЕсли;
ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи);
Если ЭтоНовый() И НЕ ЗначениеЗаполненоомер) Тогда
УстановитьНовыйНомер();
КонецЕсли;
Источник: https://baza.diplomsite.ru/previewfile/1754