Загрузка данных


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