1 модуль — Схема
Нужно создать справочники и документы, на основе которых строится конфигурация.
Справочники
- Заказчики: ИНН, адрес, телефон, является покупателем, является продавцом
- Единицы измерения
- Материалы: единица измерения, цена
- Продукция: единица измерения, цена
Документы
- Заказ покупателя
- Производство
- Спецификация продукции
2 модуль — Конфигурация
Получение цены продукции
&НаСервере
Функция ПолучитьЦенуПродукции(СсылкаПродукции)
Если СсылкаПродукции = Неопределено Тогда
Возврат 0;
КонецЕсли;
ОбъектПродукции = СсылкаПродукции.ПолучитьОбъект();
Возврат ОбъектПродукции.Цена;
КонецФункции
Код события при изменении продукции — заполняется цена
&НаКлиенте
Процедура ЗаказПродукцияПриИзменении(Элемент)
НомерСтроки = Элементы.Заказ.ТекущаяСтрока;
Если НомерСтроки = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТЧ = Объект.Заказ[НомерСтроки];
СтрокаТЧ.Цена = ПолучитьЦенуПродукции(СтрокаТЧ.Продукция);
ПересчитатьТекущуюСтроку();
КонецПроцедуры
Изменение количества и цены
&НаКлиенте
Процедура ЗаказКоличествоПриИзменении(Элемент)
ПересчитатьТекущуюСтроку();
КонецПроцедуры
&НаКлиенте
Процедура ЗаказЦенаПриИзменении(Элемент)
ПересчитатьТекущуюСтроку();
КонецПроцедуры
Код событий при изменении цены и количества для подсчёта итога
Пересчёт строки и итога
&НаКлиенте
Процедура ПересчитатьТекущуюСтроку()
НомерСтроки = Элементы.Заказ.ТекущаяСтрока;
Если НомерСтроки = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТЧ = Объект.Заказ[НомерСтроки];
Если СтрокаТЧ.Количество = Неопределено Или СтрокаТЧ.Цена = Неопределено Тогда
СтрокаТЧ.Сумма = 0;
Иначе
СтрокаТЧ.Сумма = СтрокаТЧ.Количество * СтрокаТЧ.Цена;
КонецЕсли;
ПересчитатьИтог();
КонецПроцедуры
&НаКлиенте
Процедура ПересчитатьИтог()
Итого = 0;
Для Каждого Стр Из Объект.Заказ Цикл
Итого = Итого + Стр.Сумма;
КонецЦикла;
Объект.Итого = Итого;
КонецПроцедуры
Код процедур на пересчёт строки и итога
Импорт JSON
&НаСервере
Процедура ИмпортИзJSONНаСервере()
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл("C:\Users\tanya\Desktop\Zakazchiki.json");
ДанныеСайта = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Для Каждого Данные Из ДанныеСайта Цикл
СпрЗаказчики = Справочники.Заказчики.НайтиПоКоду(Данные.id);
Если СпрЗаказчики.Пустая() Тогда
СпрЗаказчики = Справочники.Заказчики.СоздатьЭлемент();
СпрЗаказчики.Код = Данные.id;
КонецЕсли;
СпрЗаказчики.Наименование = Данные.name;
СпрЗаказчики.ИНН = Данные.inn;
СпрЗаказчики.Адрес = Данные.address;
СпрЗаказчики.Телефон = Данные.phone;
СпрЗаказчики.ЯвляетсяПродавцом = Данные.salesman;
СпрЗаказчики.ЯвляетсяПокупателем = Данные.buyer;
СпрЗаказчики.Записать();
КонецЦикла;
Сообщить("Импорт успешно завершен. Нажмите Еще -> Обновить, чтобы увидеть загруженные данные.");
КонецПроцедуры
&НаКлиенте
Процедура ИмпортИзJSON(Команда)
ИмпортИзJSONНаСервере();
КонецПроцедуры
Код импорта JSON
3 модуль — Запрос
После написания запроса нужно перейти на вкладку «Ресурсы» и настроить показатели.
ВЫБРАТЬ
ЗаказПокупателя.Покупатель КАК Покупатель,
ЗаказПокупателяЗаказ.Продукция КАК Продукция,
ЗаказПокупателяЗаказ.Количество КАК КоличествоВЗаказе,
СпецификацияПродукцииМатериалы.Материал КАК Материал,
СпецификацияПродукцииМатериалы.Количество КАК КоличествоМатериала,
СпрМатериалы.Цена КАК ЦенаМатериала,
ЗаказПокупателяЗаказ.Количество * СпрМатериалы.Цена КАК СтоимостьМатериала,
ЗаказПокупателяЗаказ.Продукция.Цена КАК ЦенаПродукции
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Заказ КАК ЗаказПокупателяЗаказ
ПО ЗаказПокупателяЗаказ.Ссылка = ЗаказПокупателя.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СпецификацияПродукции КАК СпецификацияПродукции
ПО ЗаказПокупателяЗаказ.Продукция = СпецификацияПродукции.Продукция
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СпецификацияПродукции.Материалы КАК СпецификацияПродукцииМатериалы
ПО СпецификацияПродукцииМатериалы.Ссылка = СпецификацияПродукции.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Материалы КАК СпрМатериалы
ПО СпецификацияПродукцииМатериалы.Материал = СпрМатериалы.Ссылка
Практические задания
Нажми на модуль, чтобы открыть PDF-документ прямо на сайте.
Скриншоты
Нажми на изображение, чтобы открыть его полностью на этом же сайте.
ErWin модель
Схема компоновки данных