Подготовка к демонстрационному экзамену

Краткие ответы, схемы, код и практические задания

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 модель

ErWin модель

Схема компоновки данных

Схема компоновки данных

Открытый скриншот