Содержание:
1. Описание доработок и изменений учетнойпрограммы 1С:Бухгалтерия
3. Подбор аналоговв системе компоновки данных 1С
4. Добавленные справочникив системе программирования 1С
6. Печатные формы в учетнойпрограмме 1С
7. Решениезадачи в системе аналитики 1С
Цели доработки системы:
Добавление функционала, позволяющего оформлять продажи транспорта, услуг, товаров, а также вести складской учет реализуемого товара и учет затраченного исполнителями времени на предоставляемые услуги.
1. Описание доработок и изменений учетной программы 1С:Бухгалтерия
Создать АРМ (Автоматизированное рабочее место) сотрудника, в котором можно будет создать:
1. Заказ-наряд.
Основной документ, в котором отражается вся информация о клиенте, составе работ, товаров. На основании данного документа, будет проходить создание счета, реализации, перемещения и требования на основании)
Просмотреть структуру подчиненности документов, в которую входит Заказ-наряд.
Заказ-наряд
Заказ-наряд состоит из 3 основных вкладок:
Вкладка «Основное» – основная информация со сведениями о:
Клиент (Заказчик, автомобиль), Контакты (Телефон заказчика, электронная почта),
Плательщик.
Описание ремонта:
Состояние (Заявка, В работе, Выполнен, Закрыт)
Ремонт (Справочник «Виды ремонтов»)
Вид цены Склад
Время (Начало, окончание)
Причина обращения (комментарий в свободной форме)
Заказ-наряд, вкладка Автоработы
Вкладка «Автоработы» – перечень услуг с детализацией:
№
№ по каталогу (использовать стандартный реквизит артикул)
Авторабота (номенклатура)
Количество Цена с НДС Сумма с НДС
% скидки (ручная скидка, при заполнении процента, сумму автоматически рассчитывать)
Сумма скидки (ручная скидка, при заполнении суммы, процент автоматически рассчитывать)
Всего
Исполнитель (Справочник – «Физические лица»)
(ФИО и % выполнения работы) (на некоторые виды работ может быть назначено несколько исполнителей и определен % выполняемых работ)
Для выбора исполнителя при нажатии в табличной части на строку исполнитель открывать форму подбора.
На форму подбора выводить исполнителей (в карточке сотрудника предусмотреть галочку «Исполнитель»).
из данной таблицы осуществляется выбор сотрудников и заполнение таблицы 2. Если выбран 1 сотрудник - автоматически заполнять 100%, если больше, то пропорционально с возможностью ручной корректировки.
Подбор исполнителей
Заказ-наряд, вкладка Товары
Вкладка «Товары» – перечень товаров в таблице со следующими реквизитами:
№
№ по каталогу (использовать стандартный реквизит артикул) Номенклатура
Количество
Единица, коэфф. (берем из стандартного реквизита номенклатуры) Цена с НДС
Сумма с НДС
% скидки Сумма скидки Всего
Ставка НДС Сумма НДС Склад компании
В нижней части документа в разделе Товары должны отражаться остатки выбранной позиции в статусах:
1. Остаток на складе (Анализируется склад, который является основным для выбранного цеха в Заказ-наряде).
2. Возможно переместить в производство (Анализируется количество, требуемое для обеспечения выполнения заказа, и остаток на складе).
3. В производстве.
4. Осталось переместить в производство.
2. Связанные документы в 1С
Сделать отдельный раздел для документов, связанных на основании, и в нем сделать подразделы для: Счета, Реализации, Перемещения, Требования-накладной.
Важно: Должна быть возможность переместить на склад производства одну, несколько позиций или весь документ. Так же предусмотреть кнопку «действия» на форме с выбором:
- В производство (создается стандартный документ перемещения на склад- склад производства указывается в настройках)
- Из производства (создается стандартный документ перемещения со склада)
Для платных видов работ (вид работы, указанный в заказ-наряде = платный) – создается документ «перемещение».
Для бесплатных видов работ – создается документ «требование-накладная»
Заказ-наряд, Действия
2.1. Счет и реализация: формируются сразу на все товары, услуги в документе.
Регулирование количества, при необходимости, делается вручную.
2.2. Перемещения: Переместить в производство, Вернуть из производства. Основной склад и склад производства заполняются в Заказ-наряде.
Регулирование количества, при необходимости, делается вручную.
2.3. Требование-накладная: Создается документ списания материалов с основного склада.
3. Подбор аналогов в системе компоновки данных 1С
При добавлении в заказ-наряд номенклатуры в открывающейся форме подбора (выбора номенклатуры) нужно внести доработку, добавив таблицу вывода аналогов для выделенной номенклатуры.
Выводить: № по каталогу, наименование и остаток на складе.
Номенклатура
Для определения самих аналогов в номенклатуре товаров добавить гиперссылку «Аналоги» и добавить номенклатуру, которая будет являться аналогом
Номенклатура, Группы аналогов номенклатуры
4. Добавленные справочники в системе программирования 1С
4.1. Техника (автомобили переименовать) = Производитель +модель.
Изменить название на «Техника».
В карточке «техника» основными реквизитами являются:
Марка, Модель.
4.1.1. Во вкладке «Основные» заполняется VIN и выбирается Владелец из справочника контрагентов. Полное наименование и наименование заполняется автоматически и содержит в себе «Модель»+«VIN»
Техника
4.1.2. Вкладка «Автоработы и материалы» состоит из 2 таблиц. В таблицу один построчно добавляется услуга, а в таблицу 2 добавляются материалы, входящие в спецификацию при оказании выбранной услуги.
Результатом будет являться автоматическое добавление материалов в заказ-наряде при выборе услуги для конкретной техники.
Автоработы и материалы
4.2. Производитель
Производитель
4.3. Модель
Модель
4.4. Виды ремонта
Виды ремонта
Тип ремонта: Платный/бесплатный
5. Отчеты в учетной системе 1С
5.1. Исполненные/неисполненные заказы покупателей (заказ-наряды)
Список заказ-нарядов за отчетный период с количеством по группируемым строкам
В структуре отчета:
- Статус Заказ-наряда
- Документ заказ наряда.
5.2. Выработка исполнителей
Отчет строится по исполнителям авторабот из заказ-нарядов и указанной доле их участия
Основной отчет
5.3. Продажа ЗЧ по моделям/производителям
Структура отчета: Марка, модель автомобиля, номенклатура (товар). Количество и сумма продажи за период
Анализ продаж и торговой наценки
6. Печатные формы в учетной программе 1С
6.2. Форма Дефектовочная ведомость
Изменить наименование шаблона на «Дефектовочная ведомость»
7. Решение задачи в системе аналитики 1С
Решение реализуем на расширение Расширение0005495
1. Создал перечисление Расш5495_ТипыРемонта со значениями: Платный, Бесплатный
2. Создал перечисление Расш5495_СостоянияЗаказНаряда со значениями: Заявка, ВРаботе, Выполнен, Закрыт
3. Создал перечисление Расш5495_ТипыПеремещения со значениями: НаСклад, СоСклада
4. Создал перечисление Расш5495_ВидыДокументов со значениями: Реализация, ПеремещениеТоваров, ТребованиеНакладная, СчетНаОплатуПокупателю, ЗаказНаряд
5. Создал справочник Расш5495_ Производители с реквизитами: Страна (Справочник СтраныМира), БазовыйКаталог (Строка (10)), ОбязательноЗаполнениеАртикула (Булево)
6. Создал справочник Расш5495_Модели с реквизитами: НомерПоКаталогу (Строка (10)), ПолноеНаименование (Строка (150))
7. Создал справочник Расш5495_ВидыРемонтов с реквизитами: ТипРемонта (Перечисление Расш5495_ТипыРемонта)
8. Создал справочник Расш5495_Техника с реквизитами: Марка (Справочник Расш5495_Производители), Модель (Справочник Расш5495_ Модели), VIN (Строка (17)), ПолноеНаименование (Строка (60)), ВладелецТехники (Справочник Контрагенты)
Табличные части:
1. Автоработы с реквизитами: Авторабота (Справочник Номенклатура)
2. Материалы с реквизитами: Материал (Справочник Номенклатура), Количество (Число (15, 3))
9. Создал документ Расш5495_ЗаказНаряд с реквизитами как на рисунке: Организация (Справочник Организации), Заказчик (Справочник Контрагенты), Техника (Справочник Расш5495_Техника), Контрагент
(Справочник Контрагенты), Договор (Справочник ДоговорыКонтрагентов), НачалоДата (Дата состав Дата), НачалоВремя (Дата состав Время), ОкончаниеДата (Дата состав Дата), ОкончаниеВремя (Дата состав Время),
ПричиныОбращения (Строка (300)), ТелефонЗаказчика (Строка (30)), ЭлектроннаяПочта (Строка (30)), ВидРемонта (Справочник Расш5495_ВидыРемонтов), СостояниеЗаказНаряда (Перечисление Расш5495_СостоянияЗаказНаряда), Склад (Справочник Склады), СуммаПоДокументу (Число (15, 2)),
СуммаНДСПоДокументу (Число (15, 2)), ТипЦены (Справочник ТипыЦенНоменклатуры), СкладПроизводства (Справочник Склады)
Табличные части:
1. Автоработы с реквизитами: Авторабота (Справочник Номенклатура), Количество (Число (15, 3)),
ЦенаСНДС (Число (15, 2)), СуммаСНДС (Число (15, 2)), ПроцентСкидки (Число (2, 0)),
СуммаСкидки (Число (10, 2)), всего (Число (15, 2)), СтавкаНДС (Перечислени СтавкиНДС),
СуммаНДС (Число (15, 2)), Исполнители (Строка (200)), КлючСтроки (Число (3, 0))
2.Товары с реквизитами: Номенклатура (Справочник Номенклатура), Количество (Число (15, 3)),
ЕдиницаИзмерения (Справочник КлассификаторЕдиницИзмерения), Коэффицент (Число (10, 3)),
ЦенаСНДС (Число (15, 2)), СуммаСНДС (Число (15, 2)), ПроцентСкидки (Число (2, 0)),
СуммаСкидки (Число (10, 2)), всего (Число (15, 2)), СтавкаНДС (Перечислени СтавкиНДС),
СуммаНДС (Число (15, 2)), СчетУчета (ПланСчетов Хозрасчетный)
3.Состав с реквизитами: Исполнитель (Справочник ФизическиеЛица), Цех (Справочник
ПодразделенияОрганизаций), Процент Скидки (Число (3, 0)), Сумма (Число (15, 2)), ДоляСуммы
(Число (15, 2)), КлючСтроки (Число (3, 0)), Количество (Число (15, 3))
10. Создал регистр сведений Расш5495_Исполнители с измерениями: Номенклатура (Справочник Номенклатура), Аналог (Справочник Номенклатура)
С ресурсами: Приоритет (Число (2, 0)), Автор Справочник Пользователи)
11. Создал регистр сведений Расш5495_Настройки с измерениями: ВидДокумента (Справочник Расш5495_ВидыДокументов)
С ресурсами: СкладПолучатель (Справочник Склады), ТипЦенВДокументе (Справочник ТипыЦенНоменклатуры), ВариантРасчетаНДС (Перечисление ВариантыРасчетаНДС), СпособЗачетаАвансов (Перечисление СпособыЗачетаАвансов), СкладПроизводства (Справочник Склады),
12. Создал регистр накопления Расш5495_РеализацияЗапчастей с измерениями: Номенклатура (Справочник Номенклатура), Марка (Справочник Расш5495_Производители), Модель (Справочник Расш5495_Модели)
С ресурсами: Количество (Число (15, 3)), Сумма (Число (15, 2))
Взаимственные объекты:
1. Справочники: СтраныМира , Контрагенты , Номенклатура, ПодразделенияОрганизаций, ФизическиеЛица, КлассификаторЕдиницИзмерения, Склады, ДоговорыКонтрагентов, Организации, Пользователи, ТипыЦенНоменклатуры, ВидыКонтактнойИнформации, ВидыНоменклатуры, ОсновныеСредства
2. Документы: СчетНаОплатуПокупателю, ТребованиеНакладная, РеализацияТоваровУслуг, ПеремещениеТоваров, КомплектацияНоменклатуры
3. Перечисления: СтавкиНДС, ТипыКонтактнойИнформации, ДействиеНДСВСтоимостиТоваров, СпособыУчетаМатериаловПоСотрудникам, ОтражениеВУСН, ВариантыРасчетаНДС, СпособыЗачетаАвансов, ВидыСтавокНДС, СпособыЗаполненияЦен, ВидыДоговоровКонтрагентов, ВидыОперацийРасходМатериалов, ВидыОперацийРеализацияТоваров
4. Регистры сведений: ЦеныНоменклатурыДокументов
5. Регистры бухгалтерии: Хозрасчетный
Процедуры и функции в модуле формы документа:
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ЗначениеЗаполнено(Объект.СостояниеЗаказНаряда) Тогда
Объект.СостояниеЗаказНаряда = Перечисления.Расш5495_СостоянияЗаказНаряда.Заявка;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Организация) Тогда
Объект.Организация = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
КонецЕсли;
Настройки = Расш5495_Настройки.ПолучитьНастройки("ЗаказНаряд");
Объект.СкладПроизводства = Настройки.СкладПроизводства;
Объект.Склад = Настройки.СкладПолучатель;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если Не ЗначениеЗаполнено(Объект.НачалоДата) Тогда
ТД = ТекущаяДата();
Объект.НачалоДата = ТД;
Объект.НачалоВремя = ТД;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработкиШапки
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
УстановкаДоговораИТипаЦены(Объект.Организация, Объект.Контрагент);
КонецПроцедуры
&НаКлиенте
Процедура УстановкаДоговораИТипаЦены(Организация, Контрагент)
СтруктураДанных = ВыбратьДоговорНаСервере(Организация, Контрагент);
Объект.Договор = СтруктураДанных.Договор;
Объект.ТипЦены = СтруктураДанных.ТипЦены;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВыбратьДоговорНаСервере(Организация, Контрагент)
Договор = "";
ТипЦены = "";
СтруктураДанных = Новый Структура;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка КАК Договор,
| ДоговорыКонтрагентов.ТипЦен КАК ТипЦены
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Организация = &Организация
| И ДоговорыКонтрагентов.Владелец = &Владелец
| И НЕ ДоговорыКонтрагентов.Ссылка.ПометкаУдаления
| И ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора";
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Владелец", Контрагент);
Запрос.УстановитьПараметр("ВидДоговора", Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Количество() = 1 Тогда
Выборка.Следующий();
СтруктураДанных.Вставить("Договор", Выборка.Договор);
СтруктураДанных.Вставить("ТипЦены", Выборка.ТипЦены);
Иначе
СтруктураДанных.Вставить("Договор", Договор);
СтруктураДанных.Вставить("ТипЦены", ТипЦены);
КонецЕсли;
Возврат СтруктураДанных;
КонецФункции
&НаКлиенте
Процедура ЗаказчикПриИзменении(Элемент)
Объект.Контрагент = Объект.Заказчик;
УстановкаДоговораИТипаЦены(Объект.Организация, Объект.Заказчик);
РеквизитыЗаказчика = ПолучитьРеквизитыЗаказчика(Объект.Заказчик, Объект.Дата);
Объект.ЭлектроннаяПочта = РеквизитыЗаказчика.ЭлектроннаяПочта;
Объект.ТелефонЗаказчика = РеквизитыЗаказчика.ТелефонЗаказчика;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьРеквизитыЗаказчика(Заказчик, Дата)
РеквизитыЗаказчика = Новый Структура;
МассивТипов = Новый Массив;
МассивТипов.Добавить(Перечисления.ТипыКонтактнойИнформации.Телефон);
МассивТипов.Добавить(Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
МассивВидов = Новый Массив;
МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
МассивВидов.Добавить(Справочники.ВидыКонтактнойИнформации.EmailКонтрагенты);
КонтИнформация = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов(Заказчик, МассивТипов, МассивВидов, Дата);
ТелефонЗаказчика = "";
ЭлектроннаяПочта = "";
Для каждого стр Из КонтИнформация Цикл
ВидКонтакта = Строка(стр.Вид);
Если ВидКонтакта = "Телефон" Тогда
ТелефонЗаказчика = стр.Представление
ИначеЕсли ВидКонтакта = "Email" Тогда
ЭлектроннаяПочта = стр.Представление
КонецЕсли;
КонецЦикла;
РеквизитыЗаказчика.Вставить("ТелефонЗаказчика", ТелефонЗаказчика);
РеквизитыЗаказчика.Вставить("ЭлектроннаяПочта", ЭлектроннаяПочта);
Возврат РеквизитыЗаказчика;
КонецФункции
#КонецОбласти
#Область ТЧ_Товары
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ТекДанные = Элементы.Товары.ТекущиеДанные;
СведенияОНоменклатуре = Расш5495_РаботаСТабличнойЧастьюКлиент.ПослеВыбораНоменклатуры(
Объект.Организация, ТекДанные.Номенклатура, Объект.ТипЦены, Объект.Дата);
ТекДанные.СчетУчета = СведенияОНоменклатуре.СчетУчета;
ТекДанные.Количество = 1;
ТекДанные.Коэффицент = 1;
ТекДанные.ЕдиницаИзмерения = СведенияОНоменклатуре.ЕдиницаИзмерения;
ТекДанные.СтавкаНДС = СведенияОНоменклатуре.СтавкаНДС;
ТекДанные.ЦенаСНДС = СведенияОНоменклатуре.ЦенаПродажи;
РасчетСуммИСкидокВВыбраннойТЧ(ТекДанные, СведенияОНоменклатуре.ВидСтавкиНДС);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
РасчетСуммИСкидок("Товары");
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаСНДСПриИзменении(Элемент)
РасчетСуммИСкидок("Товары");
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПроцентСкидкиПриИзменении(Элемент)
РасчетСуммИСкидок("Товары");
КонецПроцедуры
&НаКлиенте
Процедура РасчетСуммИСкидок(ИмяТЧ)
Если ИмяТЧ = "Товары" Тогда
ТекДанные = Элементы.Товары.ТекущиеДанные;
НоменклатураИлиАвторабота = ТекДанные.Номенклатура;
ИначеЕсли ИмяТЧ = "Автоработы" Тогда
ТекДанные = Элементы.Автоработы.ТекущиеДанные;
НоменклатураИлиАвторабота = ТекДанные.Авторабота;
Иначе
Возврат;
КонецЕсли;
СведенияОНоменклатуре = Расш5495_РаботаСТабличнойЧастьюКлиент.ПослеВыбораНоменклатуры(
Объект.Организация, НоменклатураИлиАвторабота, Объект.ТипЦены, Объект.Дата);
РасчетСуммИСкидокВВыбраннойТЧ(ТекДанные, СведенияОНоменклатуре.ВидСтавкиНДС);
КонецПроцедуры
&НаКлиенте
Процедура РасчетСуммИСкидокВВыбраннойТЧ(ТекДанные, ВидСтавкиНДС)
Если ВидСтавкиНДС = ПредопределенноеЗначение("Перечисление.ВидыСтавокНДС.Общая") Тогда
ЗначениеСтавкиНДС = 20;
ИначеЕсли ВидСтавкиНДС = ПредопределенноеЗначение("Перечисление.ВидыСтавокНДС.Пониженная") Тогда
ЗначениеСтавкиНДС = 10;
ИначеЕсли ВидСтавкиНДС = ПредопределенноеЗначение("Перечисление.ВидыСтавокНДС.БезНДС") Тогда
ЗначениеСтавкиНДС = 0;
ИначеЕсли ВидСтавкиНДС = ПредопределенноеЗначение("Перечисление.ВидыСтавокНДС.Нулевая") Тогда
ЗначениеСтавкиНДС = 0;
КонецЕсли;
Если Не ЗначениеЗаполнено(ВидСтавкиНДС) Тогда
ЗначениеСтавкиНДС = 0;
КонецЕсли;
Если ЗначениеСтавкиНДС = 20 Тогда
ТекДанные.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20");
ИначеЕсли ЗначениеСтавкиНДС = 10 Тогда
ТекДанные.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС10");
ИначеЕсли ЗначениеСтавкиНДС = 0 Тогда
ТекДанные.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС");
КонецЕсли;
ТекДанные.СуммаСНДС = ТекДанные.Количество * ТекДанные.ЦенаСНДС;
ТекДанные.СуммаСкидки = ТекДанные.СуммаСНДС * ТекДанные.ПроцентСкидки / 100;
ТекДанные.Всего = ТекДанные.СуммаСНДС - ТекДанные.СуммаСкидки;
ТекДанные.СуммаНДС = ТекДанные.Всего * ЗначениеСтавкиНДС / (100 + ЗначениеСтавкиНДС);
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
РасчетСуммИСкидок("Товары");
КонецПроцедуры
#КонецОбласти
#Область ТЧ_Автоработы
&НаКлиенте
Процедура АвтоработыАвтоработаПриИзменении(Элемент)
ТекДанные = Элементы.Автоработы.ТекущиеДанные;
СведенияОНоменклатуре = Расш5495_РаботаСТабличнойЧастьюКлиент.ПослеВыбораНоменклатуры(
Объект.Организация, ТекДанные.Авторабота, Объект.ТипЦены, Объект.Дата);
ТекДанные.Количество = 1;
ТекДанные.СтавкаНДС = СведенияОНоменклатуре.СтавкаНДС;
ТекДанные.ЦенаСНДС = СведенияОНоменклатуре.ЦенаПродажи;
РасчетСуммИСкидокВВыбраннойТЧ(ТекДанные, СведенияОНоменклатуре.ВидСтавкиНДС);
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыКоличествоПриИзменении(Элемент)
РасчетСуммИСкидок("Автоработы");
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыЦенаСНДСПриИзменении(Элемент)
РасчетСуммИСкидок("Автоработы");
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыПроцентСкидкиПриИзменении(Элемент)
РасчетСуммИСкидок("Автоработы");
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыИсполнителиОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекСтрока = Элементы.Автоработы.ТекущиеДанные;
ДанныеДляЗапроса = Новый Структура;
ДанныеДляЗапроса.Вставить("КлючСтроки", ТекСтрока.КлючСтроки);
МассивДанных = ПолучитьМассивДанных(ДанныеДляЗапроса);
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("МассивДанных", МассивДанных);
ДопПараметры = Новый Структура;
ДопПараметры.Вставить("КлючСтроки", ТекСтрока.КлючСтроки);
ДопПараметры.Вставить("СуммаВСтроке", ТекСтрока.Всего);
ДопПараметры.Вставить("Количество", ТекСтрока.Количество);
Оп = Новый ОписаниеОповещения("ПослеВыбораИсполнителей", ЭтаФорма, ДопПараметры);
ОткрытьФорму("Обработка.Расш5495_ПодборИсполнителей.Форма.Форма", ПараметрыОткрытия, ЭтаФорма,,,, Оп, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца)
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораИсполнителей(Результат, ДопПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Исполнители = "";
ТекДанные = "";
ОтборПоКлючу = Новый Структура("КлючСтроки", ДопПараметры.КлючСтроки);
УдаляемыеСтроки = Объект.Состав.НайтиСтроки(ОтборПоКлючу);
Для каждого стр Из УдаляемыеСтроки Цикл
Объект.Состав.Удалить(стр);
КонецЦикла;
Для каждого стр Из Результат Цикл
ТекДанные = Строка(стр.Исполнитель) + ", " + Строка(стр.Цех) + ", " + Строка(стр.Процент) + " %; ";
Исполнители = Исполнители + ТекДанные;
НоваяСтрока = Объект.Состав.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, стр);
НоваяСтрока.КлючСтроки = ДопПараметры.КлючСтроки;
НоваяСтрока.Количество = ДопПараметры.Количество * НоваяСтрока.Процент / 100;
НоваяСтрока.Сумма = ДопПараметры.СуммаВСтроке;
НоваяСтрока.ДоляСуммы = НоваяСтрока.Сумма * НоваяСтрока.Процент / 100;
КонецЦикла;
ТекущиеДанные = Элементы.Автоработы.ТекущиеДанные;
ТекущиеДанные.Исполнители = Исполнители;
Модифицированность = Истина;
КонецПроцедуры
#КонецОбласти
#Область Документы
&НаКлиенте
Процедура ВПроизводство(Команда)
ТипПеремещения = ПредопределенноеЗначение("Перечисление.Расш5495_ТипыПеремещения.НаСклад");
СоздаемПеремещениеТоваров(ТипПеремещения);
КонецПроцедуры
&НаКлиенте
Процедура ИзПроизводства(Команда)
ТипПеремещения = ПредопределенноеЗначение("Перечисление.Расш5495_ТипыПеремещения.СоСклада");
СоздаемПеремещениеТоваров(ТипПеремещения);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьТипРемонта(ВидРемонта);
ТипРемонта = ВидРемонта.ТипРемонта;
Возврат ТипРемонта;
КонецФункции
&НаКлиенте
Процедура СоздаемПеремещениеТоваров(ТипПеремещения)
Если ТипПеремещения = ПредопределенноеЗначение("Перечисление.Расш5495_ТипыПеремещения.НаСклад") Тогда
СкладОтправитель = Объект.Склад;
СкладПолучатель = Объект.СкладПроизводства;
ИначеЕсли ТипПеремещения = ПредопределенноеЗначение("Перечисление.Расш5495_ТипыПеремещения.СоСклада") Тогда
СкладОтправитель = Объект.СкладПроизводства;
СкладПолучатель = Объект.Склад;
Иначе
КонецЕсли;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Организация", Объект.Организация);
ПараметрыОткрытия.Вставить("СкладОтправитель", СкладОтправитель);
ПараметрыОткрытия.Вставить("СкладПолучатель", СкладПолучатель);
ПараметрыОткрытия.Вставить("ДокументОснование", Объект.Ссылка);
ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокумента", ПараметрыОткрытия, ЭтаФорма,,,, , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца)
КонецПроцедуры
#КонецОбласти
#Область ОбработкиТЧ_Товары
&НаКлиенте
Процедура Подбор(Команда)
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Организация", Объект.Организация);
ПараметрыОткрытия.Вставить("Склад", Объект.Склад);
Оп = Новый ОписаниеОповещения("ПослеПодбора", ЭтаФорма);
ОткрытьФорму("Обработка.Расш5495_ПодборНоменклатуры.Форма.Форма", ПараметрыОткрытия,,,,, Оп, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПодбора(Результат, Доп) Экспорт
Если Не Результат = Неопределено Тогда
Для каждого стр Из Результат Цикл
НоваяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, стр);
СведенияОНоменклатуре = Расш5495_РаботаСТабличнойЧастьюКлиент.ПослеВыбораНоменклатуры(
Объект.Организация, стр.Номенклатура, Объект.ТипЦены, Объект.Дата);
НоваяСтрока.СчетУчета = СведенияОНоменклатуре.СчетУчета;
НоваяСтрока.Коэффицент = 1;
НоваяСтрока.ЕдиницаИзмерения = СведенияОНоменклатуре.ЕдиницаИзмерения;
НоваяСтрока.СтавкаНДС = СведенияОНоменклатуре.СтавкаНДС;
НоваяСтрока.ЦенаСНДС = СведенияОНоменклатуре.ЦенаПродажи;
РасчетСуммИСкидокВВыбраннойТЧ(НоваяСтрока, СведенияОНоменклатуре.ВидСтавкиНДС);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоАвтоработам(Команда)
ЗаполнитьПоАвтоработамНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоАвтоработамНаСервере()
Если Не ЗначениеЗаполнено(Объект.Ссылка) или Модифицированность Тогда
Записать();
КонецЕсли;
Если Объект.Товары.Количество() > 0 Тогда
Объект.Товары.Очистить();
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Расш5495_ЗаказНарядАвтоработы.Ссылка.Организация КАК Организация,
| Расш5495_ЗаказНарядАвтоработы.Ссылка.Техника КАК Техника,
| Расш5495_ЗаказНарядАвтоработы.Авторабота КАК Авторабота,
| Расш5495_ЗаказНарядАвтоработы.Количество КАК КоличествоРабот
|ПОМЕСТИТЬ втДанныеДок
|ИЗ
| Документ.Расш5495_ЗаказНаряд.Автоработы КАК Расш5495_ЗаказНарядАвтоработы
|ГДЕ
| Расш5495_ЗаказНарядАвтоработы.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втДанныеДок.Организация КАК Организация,
| втДанныеДок.Техника КАК Техника,
| втДанныеДок.Авторабота КАК Авторабота,
| втДанныеДок.КоличествоРабот КАК КоличествоРабот,
| Расш5495_ТехникаМатериалы.Материал КАК Номенклатура,
| ВЫБОР
| КОГДА втДанныеДок.КоличествоРабот = 0
| ТОГДА Расш5495_ТехникаМатериалы.Количество
| ИНАЧЕ втДанныеДок.КоличествоРабот * ЕСТЬNULL(Расш5495_ТехникаМатериалы.Количество, 0)
| КОНЕЦ КАК Количество,
| Расш5495_ТехникаМатериалы.Материал.ВидСтавкиНДС КАК ВидСтавкиНДС,
| Расш5495_ТехникаМатериалы.НомерСтроки КАК НомерСтроки
|ПОМЕСТИТЬ втДанныеЧастично
|ИЗ
| втДанныеДок КАК втДанныеДок
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Расш5495_Техника.Автоработы КАК Расш5495_ТехникаАвтоработы
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Расш5495_Техника.Материалы КАК Расш5495_ТехникаМатериалы
| ПО Расш5495_ТехникаАвтоработы.Ссылка = Расш5495_ТехникаМатериалы.Ссылка
| ПО втДанныеДок.Техника = Расш5495_ТехникаАвтоработы.Ссылка
| И втДанныеДок.Авторабота = Расш5495_ТехникаАвтоработы.Авторабота
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втДанныеЧастично.Организация КАК Организация,
| втДанныеЧастично.Техника КАК Техника,
| втДанныеЧастично.Авторабота КАК Авторабота,
| втДанныеЧастично.КоличествоРабот КАК КоличествоРабот,
| втДанныеЧастично.Номенклатура КАК Номенклатура,
| втДанныеЧастично.Количество КАК Количество,
| ВЫБОР
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Общая)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Пониженная)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.БезНДС)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Нулевая)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)
| КОНЕЦ КАК СтавкаНДС,
| ВЫБОР
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Общая)
| ТОГДА 20
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Пониженная)
| ТОГДА 10
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.БезНДС)
| ТОГДА 0
| КОГДА втДанныеЧастично.ВидСтавкиНДС = ЗНАЧЕНИЕ(Перечисление.ВидыСтавокНДС.Нулевая)
| ТОГДА 0
| КОНЕЦ КАК ЗначениеСтавкиНДС,
| втДанныеЧастично.НомерСтроки КАК НомерСтроки,
| ЕСТЬNULL(ЦеныНоменклатурыДокументов.Цена, 0) КАК Цена,
| ЦеныНоменклатурыДокументов.ЦенаВключаетНДС КАК ЦенаВключаетНДС
|ПОМЕСТИТЬ втДанные
|ИЗ
| втДанныеЧастично КАК втДанныеЧастично
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыДокументов КАК ЦеныНоменклатурыДокументов
| ПО втДанныеЧастично.Номенклатура = ЦеныНоменклатурыДокументов.Номенклатура
| И (ЦеныНоменклатурыДокументов.СпособЗаполненияЦены = ЗНАЧЕНИЕ(Перечисление.СпособыЗаполненияЦен.ПоПродажнымЦенам))
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втДанные.Организация КАК Организация,
| втДанные.Техника КАК Техника,
| втДанные.Авторабота КАК Авторабота,
| втДанные.КоличествоРабот КАК КоличествоРабот,
| втДанные.Номенклатура КАК Номенклатура,
| втДанные.Количество КАК Количество,
| 1 КАК Коэффицент,
| втДанные.СтавкаНДС КАК СтавкаНДС,
| втДанные.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВЫБОР
| КОГДА втДанные.ЦенаВключаетНДС
| ТОГДА втДанные.Цена
| ИНАЧЕ втДанные.Цена * (1 + втДанные.ЗначениеСтавкиНДС / 100)
| КОНЕЦ КАК ЦенаСНДС,
| втДанные.НомерСтроки КАК НомерСтроки,
| втДанные.ЗначениеСтавкиНДС КАК ЗначениеСтавкиНДС
|ПОМЕСТИТЬ втДанныеВсе
|ИЗ
| втДанные КАК втДанные
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втДанныеВсе.Организация КАК Организация,
| втДанныеВсе.Техника КАК Техника,
| втДанныеВсе.Авторабота КАК Авторабота,
| втДанныеВсе.КоличествоРабот КАК КоличествоРабот,
| втДанныеВсе.Номенклатура КАК Номенклатура,
| втДанныеВсе.Количество КАК Количество,
| втДанныеВсе.Коэффицент КАК Коэффицент,
| втДанныеВсе.СтавкаНДС КАК СтавкаНДС,
| втДанныеВсе.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| втДанныеВсе.ЦенаСНДС КАК ЦенаСНДС,
| втДанныеВсе.Количество * втДанныеВсе.ЦенаСНДС КАК СуммаСНДС,
| втДанныеВсе.Количество * втДанныеВсе.ЦенаСНДС КАК Всего,
| втДанныеВсе.ЗначениеСтавкиНДС КАК ЗначениеСтавкиНДС,
| втДанныеВсе.НомерСтроки КАК НомерСтроки,
| втДанныеВсе.Номенклатура.ВидНоменклатуры.Наименование КАК ВидНоменклатуры
|ПОМЕСТИТЬ втРезультат
|ИЗ
| втДанныеВсе КАК втДанныеВсе
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втРезультат.Организация КАК Организация,
| втРезультат.Техника КАК Техника,
| втРезультат.Авторабота КАК Авторабота,
| втРезультат.КоличествоРабот КАК КоличествоРабот,
| втРезультат.Номенклатура КАК Номенклатура,
| втРезультат.Количество КАК Количество,
| втРезультат.Коэффицент КАК Коэффицент,
| втРезультат.СтавкаНДС КАК СтавкаНДС,
| втРезультат.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| втРезультат.ЦенаСНДС КАК ЦенаСНДС,
| втРезультат.СуммаСНДС КАК СуммаСНДС,
| втРезультат.Всего КАК Всего,
| втРезультат.ЗначениеСтавкиНДС КАК ЗначениеСтавкиНДС,
| втРезультат.НомерСтроки КАК НомерСтроки,
| втРезультат.Всего * втРезультат.ЗначениеСтавкиНДС / (100 + втРезультат.ЗначениеСтавкиНДС) КАК СуммаНДС,
| ВЫБОР
| КОГДА втРезультат.ВидНоменклатуры = ""Товары""
| ИЛИ втРезультат.ВидНоменклатуры = ""Товар""
| ТОГДА ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах)
| КОГДА втРезультат.ВидНоменклатуры = ""Материалы""
| ТОГДА ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СырьеИМатериалы)
| КОНЕЦ КАК СчетУчета
|ИЗ
| втРезультат КАК втРезультат
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)
ТекДанные = Элементы.Товары.ТекущиеДанные;
Если ТекДанные <> Неопределено Тогда
ИнфоПоТовару = Расш5495_ИнфоПоТовару.ПолучитьИнфоПоТовару(ТекДанные.СчетУчета, ТекДанные.Номенклатура, ТекДанные.Количество, Объект.Организация, Объект.Склад, Объект.СкладПроизводства);
ОстатокНаСкладе = ИнфоПоТовару.ОстатокНаСкладе;
ВозможноПереместитьВПроизводство = ИнфоПоТовару.ВозможноПереместитьВПроизводство;
ОстатокВПроизводстве = ИнфоПоТовару.ОстатокВПроизводстве;
ОсталосьПереместитьВПроизводство = ИнфоПоТовару.ОсталосьПереместитьВПроизводство;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область КлючСвязиСтрок
&НаКлиенте
Процедура УстановитьКлючиСтрокАвторабота()
Для каждого Стр Из Объект.Автоработы Цикл
Если Не ЗначениеЗаполнено(Стр.КлючСтроки) Тогда
Стр.КлючСтроки = Стр.ПолучитьИдентификатор();
КонецЕсли;
КонецЦикла;
УстановитьВидимостьСтрок();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьВидимостьСтрок()
СоставИндексСтроки = Объект.Автоработы.Индекс(Элементы.Автоработы.ТекущиеДанные);
Если СоставИндексСтроки >= 0 Тогда
ВыделеннаяСтрока = Объект.Автоработы.Получить(СоставИндексСтроки);
КлючСтроки = ВыделеннаяСтрока.КлючСтроки;
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("КлючСтроки", КлючСтроки);
Элементы.Состав.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураПоиска);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьКлючиСтрокСостав()
ИндексСтрокиСостав = Объект.Автоработы.Индекс(Элементы.Автоработы.ТекущиеДанные);
ВыделеннаяСтрока = Объект.Автоработы.Получить(ИндексСтрокиСостав);
КлючСтроки = ВыделеннаяСтрока.КлючСтроки;
Для каждого Стр Из Объект.Состав Цикл
Если Не ЗначениеЗаполнено(Стр.КлючСтроки) Тогда
Стр.КлючСтроки = КлючСтроки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыПриАктивизацииСтроки(Элемент)
УстановитьВидимостьСтрок();
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыПриИзменении(Элемент)
УстановитьВидимостьСтрок();
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыПередУдалением(Элемент, Отказ)
ИндексСтроки = Объект.Автоработы.Индекс(Элементы.Автоработы.ТекущиеДанные);
ВыделеннаяСтрока = Объект.Автоработы.Получить(ИндексСтроки);
КлючСтроки = ВыделеннаяСтрока.КлючСтроки;
НулевыеСтроки = Объект.Состав.НайтиСтроки(Новый Структура("КлючСтроки", КлючСтроки));
Для каждого СтрокаТаблицы Из НулевыеСтроки Цикл
Объект.Состав.Удалить(СтрокаТаблицы);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура АвтоработыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если Копирование Тогда
Элемент.ТекущиеДанные.Исполнители = "";
КонецЕсли;
Если НоваяСтрока Тогда
МаксимальныйКлючСтроки = ПолучитьМаксимальныйКлючСтроки() + 1;
Объект.Автоработы[Объект.Автоработы.Количество() - 1].КлючСтроки = МаксимальныйКлючСтроки;
КонецЕсли;
УстановитьВидимостьСтрок();
КонецПроцедуры
&НаКлиенте
Функция ПолучитьМаксимальныйКлючСтроки()
МаксимальныйКлючСтроки = 100;
Для каждого Стр Из Объект.Автоработы Цикл
Попытка
МаксимальныйКлючСтроки = Макс(МаксимальныйКлючСтроки, Число(Стр.КлючСтроки));
Исключение
Сообщить("Ошибка при получении МаксимальныйКлючСтроки");
КонецПопытки;
КонецЦикла;
Возврат МаксимальныйКлючСтроки;
КонецФункции
&НаСервере
Функция ПолучитьМассивДанных(ДанныеДляЗапроса)
МассивДанных = Новый Массив;
КлючСтроки = ДанныеДляЗапроса.КлючСтроки;
ПолныйОбъект = РеквизитФормыВЗначение("Объект");
Состав = ПолныйОбъект.Состав;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Состав.Исполнитель КАК Исполнитель,
| Состав.Цех КАК Цех,
| Состав.Процент КАК Процент,
| Состав.КлючСтроки КАК КлючСтроки
|ПОМЕСТИТЬ втСостав
|ИЗ
| &Состав КАК Состав
|ГДЕ
| Состав.КлючСтроки = &КлючСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| втСостав.Исполнитель КАК Исполнитель,
| втСостав.Цех КАК Цех,
| втСостав.Процент КАК Процент,
| втСостав.КлючСтроки КАК КлючСтроки
|ИЗ
| втСостав КАК втСостав";
Запрос.УстановитьПараметр("Состав", Состав);
Запрос.УстановитьПараметр("КлючСтроки", КлючСтроки);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Исполнитель", Выборка.Исполнитель);
СтруктураДанных.Вставить("Цех", Выборка.Цех);
СтруктураДанных.Вставить("Процент", Выборка.Процент);
МассивДанных.Добавить(СтруктураДанных);
КонецЦикла;
Возврат МассивДанных;
КонецФункции
&НаКлиенте
Процедура АвтомобильТабчастьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("Заказчик", Объект.Заказчик);
ПараметрыОткрытия.Вставить("МножественныйПодбор", Ложь);
ОткрытьФорму("Справочник.Расш5495_Техника.ФормаВыбора", ПараметрыОткрытия, ЭтаФорма);
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Справочник.Расш5495_Техника.Форма.ФормаВыбора" Тогда
Объект.Техника = ВыбранноеЗначение;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ТипЦены = ПолучитьТипЦены(Объект.Договор);
Объект.ТипЦены = ТипЦены;
КонецПроцедуры
&НаСервереБезКонтекста
функция ПолучитьТипЦены(Договор)
ТипЦены = 0;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.ТипЦен КАК ТипЦены
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Ссылка = &Договор";
Запрос.УстановитьПараметр("Договор", Договор);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
ТипЦены = Выборка.ТипЦены;
КонецЕсли;
Возврат ТипЦены;
КонецФункции
#КонецОбласти
В модуле объекта документа:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
СуммаПоДокументу = Автоработы.Итог("Всего") + Товары.Итог("Всего");
СуммаНДСПоДокументу = Автоработы.Итог("СуммаНДС") + Товары.Итог("СуммаНДС");
КонецПроцедуры
Специалист компании ООО "Кодерлайн"
Марс Айзатуллов