Файл: Разработка конфигурации «Управление товарными потоками» в среде 1С:Предприятие 8.3..pdf
Добавлен: 23.04.2023
Просмотров: 200
Скачиваний: 5
СОДЕРЖАНИЕ
1.1 Выбор комплекса задач автоматизации
1.2 Характеристика документооборота, возникающего при решении задачи
1.3 Обоснование проектных решений по информационному обеспечению
2.2 Характеристика разработанных экранных форм документов в среде 1С:Предприятие
2.3 Описание реализации периодических расчетов в среде 1С:Предприятие
2.4 Описание созданной / откорректированной карты маршрута бизнес-процесса в среде 1С:Предприятие
2.7 Контрольный пример реализации проекта в среде 1С:Предприятие и его описание
Процедура ЗаполнитьОстатокПоЗаказуСервер(Основание) Экспорт
Результат=РаботаСРегистрами.ПолучитьОстатокПоЗаказу(Основание);
Для Каждого Значение Из Результат Цикл
НоваяСтрока=Товары.Добавить();
НоваяСтрока.Товар = Значение.Товар;
НоваяСтрока.Количество = Значение.Остаток;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр Остатки Приход
Движения.Остатки.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.Остатки.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Товар = ТекСтрокаТовары.Товар;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.Сумма = ТекСтрокаТовары.Сумма;
Движение.ЗакупочнаяЦена = ТекСтрокаТовары.ЦенаЗакупки;
КонецЦикла;
// регистр Заказы Расход
Движения.Заказы.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.Заказы.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.ДокументЗаказа = Номер;
Движение.Товар = ТекСтрокаТовары.Товар;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.Сумма = ТекСтрокаТовары.Сумма;
КонецЦикла;
// регистр Закупки
Движения.Закупки.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.Закупки.Добавить();
Движение.Период = Дата;
Движение.Клиент = Поставщик;
Движение.Товар = ТекСтрокаТовары.Товар;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.Сумма = ТекСтрокаТовары.Сумма;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
СуммаДокумента = Товары.Итог("Сумма");
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Заказ") Тогда
Основание = ДанныеЗаполнения;
ЗаполнитьОстатокПоЗаказуСервер(ДанныеЗаполнения);
КонецЕсли;
КонецПроцедуры
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.Закупка.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Закупка.Дата,
| Закупка.Номер,
| Закупка.Основание,
| Закупка.Поставщик,
| Закупка.СуммаДокумента,
| Закупка.Товары.(
| НомерСтроки,
| Товар,
| Количество,
| ЦенаЗакупки,
| Сумма
| )
|ИЗ
| Документ.Закупка КАК Закупка
|ГДЕ
| Закупка.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка");
ОбластьТовары = Макет.ПолучитьОбласть("Товары");
Подвал = Макет.ПолучитьОбласть("Подвал");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьТоварыШапка);
ВыборкаТовары = Выборка.Товары.Выбрать();
Пока ВыборкаТовары.Следующий() Цикл
ОбластьТовары.Параметры.Заполнить(ВыборкаТовары);
ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень());
КонецЦикла;
Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал);
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
&НаСервере
Функция ПолучитьОстатокПоЗаказу(Заказ) Экспорт
Запрос = Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| ЗаказыОстатки.Товар КАК Товар ,
| ЗаказыОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.Заказы.Остатки(&Момент, ДокументЗаказа = &ДокументЗаказа) КАК ЗаказыОстатки";
Граница= Новый Граница(КонецДня(ТекущаяДата()),ВидГраницы.Включая);
Запрос.УстановитьПараметр("Момент",Граница);
Запрос.УстановитьПараметр("ДокументЗаказа",Заказ);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат;
КонецФункции
&НаСервере
Процедура ЗаписатьНаборВБазу(Объект,Режим) Экспорт
Если Режим = "Продажа" Тогда
Набор = РегистрыНакопления.Продажа.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Значение = Объект.Ссылка;
Товары = Объект.Товары;
Клиент = Объект.Клиент;
Для Каждого Строка Из Товары Цикл
Запись=Набор.Добавить();
Запись.Период = Объект.Дата;
Запись.Товар = Строка.Товар;
Запись.Клиент =Клиент;