Вообщем задача достаточно интересна, необходимо сделать так что бы из формы на скриншоте, номер договора и кол-во дней подкинулись в новый договор, при этом из уже существующего договора, который мы продлеваем, в новый подтянуть данные номенклатуры и клиента Контр-та. Может кто помочь разобраться? Заранее спасибо!
Прием товара :
&НаСервереБезКонтекста
Функция ПриемТовараНаСервере(ТекущийМагазин)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| Поокупка.Ссылка
|ИЗ
| Документ.Покупка КАК Продажа
|ГДЕ
| Продажа.Дата >= &Дата
| И Покупка.Магазин = &Магазин";
Запрос.УстановитьПараметр("Дата", НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Магазин", ТекущийМагазин);
лДокумент = Документы.Покупка.СоздатьДокумент();
лДокумент.Дата = ТекущаяДата();
лДокумент.Магазин = ТекущийМагазин;
лДокумент.Записать(РежимЗаписиДокумента.Запись);
Возврат лДокумент.Ссылка;
КонецФункции
&НаКлиенте
Процедура ПриемТовара(Команда)
ОткрытьФорму("Документ.Покупка.Форма.ФормаДокумента", Новый Структура("Ключ", ПредопределенноеЗначение("Документ.Покупка.ПустаяСсылка")));
КонецПроцедуры
Выдача товара:
&НаСервереБезКонтекста
Функция ПродажаТовараНаСервере(ТекущийМагазин)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| Продажа.Ссылка
|ИЗ
| Документ.Продажа КАК Продажа
|ГДЕ
| Продажа.Дата >= &Дата
| И Продажа.Магазин = &Магазин";
Запрос.УстановитьПараметр("Дата", НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Магазин", ТекущийМагазин);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Возврат ВыборкаДетальныеЗаписи.Ссылка;
КонецЦикла;
лДокумент = Документы.Продажа.СоздатьДокумент();
лДокумент.Дата = ТекущаяДата();
лДокумент.Магазин = ТекущийМагазин;
лДокумент.Записать(РежимЗаписиДокумента.Запись);
Возврат лДокумент.Ссылка;
КонецФункции
&НаКлиенте
Процедура ПродажаТовара(Команда)
ОткрытьФорму("Документ.Продажа.Форма.ФормаДокумента", Новый Структура("Ключ", ПредопределенноеЗначение("Документ.Продажа.ПустаяСсылка")));
КонецПроцедуры
&НаСервере
Процедура ПролонгацияДоговораНаСервере()
ДокументПокупки = Неопределено;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| Покупка.Ссылка
|ИЗ
| Документ.Покупка КАК Покупка
|ГДЕ
| Покупка.Дата >= &Дата
| И Покупка.Магазин = &Магазин";
Запрос.УстановитьПараметр("Дата", НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("Магазин", ТекущийМагазин);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ДокументПокупки = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
КонецЦикла;
Если ДокументПокупки = Неопределено Тогда
ДокументПокупки = Документы.Покупка.СоздатьДокумент();
ДокументПокупки.Дата = ТекущаяДата();
ДокументПокупки.Магазин = ТекущийМагазин;
ДокументПокупки.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентовСписокНоменклатуры.Количество,
| ДоговорыКонтрагентовСписокНоменклатуры.Цена,
| ДоговорыКонтрагентовСписокНоменклатуры.Ссылка.Владелец КАК Контрагент,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.Наименование КАК Наименование,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.КомиссияКоличествоДней КАК КомиссияКоличествоДней,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.ПроцентнаяСтавка КАК ПроцентнаяСтавка,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.СерийныйНомер КАК СерийныйНомер,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.ПланируемаяСуммаПродажи КАК ПланируемаяСуммаПродажи,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.ПробаДрагоценныхМеталлов КАК ПробаДрагоценныхМеталлов,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.МассаЮвелирногоИзделия КАК МассаЮвелирногоИзделия,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.МассаДрагоценныхМеталлов КАК МассаДрагоценныхМеталлов,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.Описание КАК Описание,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.Комплектация КАК Комплектация,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.СтранаПроизводитель КАК СтранаПроизводитель,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.Комментарий КАК Комментарий,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.НедостаткиТовара КАК НедостаткиТовара,
| ДоговорыКонтрагентовСписокНоменклатуры.Номенклатура.Фотография КАК Фотография
|ИЗ
| Справочник.ДоговорыКонтрагентов.СписокНоменклатуры КАК ДоговорыКонтрагентовСписокНоменклатуры
|ГДЕ
| ДоговорыКонтрагентовСписокНоменклатуры.Ссылка.Код = &Код";
Запрос.УстановитьПараметр("Код", НомерДоговора);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
ЗаполнитьЗначенияСвойств(НоваяНоменклатура, ВыборкаДетальныеЗаписи);
//НоваяНоменклатура.Фотография = ВыборкаДетальныеЗаписи.Фотография;
Если ЗначениеЗаполнено(СрокПролонгации) Тогда
НоваяНоменклатура.КомиссияКоличествоДней = СрокПролонгации;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПроцентныеСтавкиРегионовСрезПоследних.КоличествоДней,
| МИНИМУМ(ПроцентныеСтавкиРегионовСрезПоследних.ПроцентнаяСтавка) КАК ПроцентнаяСтавка
|ИЗ
| РегистрСведений.ПроцентныеСтавкиМагазинов.СрезПоследних(
| &ТекущаяДата,
| Магазин = &Магазин
| И (ДатаОкончания >= &ТекущаяДата
| ИЛИ ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1))) КАК ПроцентныеСтавкиРегионовСрезПоследних
|ГДЕ
| ПроцентныеСтавкиРегионовСрезПоследних.КоличествоДней = &КоличествоДней
|
|СГРУППИРОВАТЬ ПО
| ПроцентныеСтавкиРегионовСрезПоследних.КоличествоДней";
Запрос.УстановитьПараметр("Магазин", ПараметрыСеанса.ТекущийМагазин);
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
Запрос.УстановитьПараметр("КоличествоДней", НоваяНоменклатура.КомиссияКоличествоДней);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Если РольДоступна("Магазин") Тогда
Сообщить("В данном регионе не настроены условия Комиссии.");
КонецЕсли;
Возврат;
Иначе
ВыборкаПроцентнаяСтавка = РезультатЗапроса.Выбрать();
ВыборкаПроцентнаяСтавка.Следующий();
НоваяНоменклатура.ПроцентнаяСтавка = ВыборкаПроцентнаяСтавка.ПроцентнаяСтавка;
КонецЕсли;
НоваяНоменклатура.Записать();
НоваяСтрокаПокупки = ДокументПокупки.СписокНоменклатуры.Добавить();
НоваяСтрокаПокупки.Номенклатура = НоваяНоменклатура.Ссылка;
НоваяСтрокаПокупки.Количество = ВыборкаДетальныеЗаписи.Количество;
НоваяСтрокаПокупки.Цена = ВыборкаДетальныеЗаписи.Цена;
НоваяСтрокаПокупки.Контрагент = ВыборкаДетальныеЗаписи.Контрагент;
НоваяСтрокаПокупки.Сотрудник = ТекущийСотрудник;
НоваяСтрокаПокупки.Сумма = ВыборкаДетальныеЗаписи.Количество * ВыборкаДетальныеЗаписи.Цена;
КонецЦикла;
ДокументПокупки.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
&НаКлиенте
Процедура ПролонгацияДоговора(Команда)
ПролонгацияДоговораНаСервере();
КонецПроцедуры