Базовый курс. Занятие №7

Приступайте к седьмому занятию базового курса.

ps. На этой странице не нужно отчитываться о выполнении ДЗ.

комментария 3 на “Базовый курс. Занятие №7”

  1. Сделала 7 ДЗ. Отчет отправила по почте куратору.

  2. Наталья 25.06.2012 в 05:09

    Закупка и реализация:
    Созданы документы:
    ПоступлениеТоваров с реквизитами:
    Контрагент – составной тип Справочник.Контрагенты, Справочник.Сотрудники
    Табличная часть Товары с реквизитами:
    Номенклатура – тип Справочник.Номенклатура;
    Единица – тип Справочник.ЕдиницыИзмеренияНоменклатуры. В свойстве Связи параметров выбора установлено: Отбор.Владелец(Товары.Номенклатура);
    Количество – тип Число 15.3;
    Цена – тип Число 15.2;
    Сумма – тип Число 17.2;
    Категория – тип Справочник.КатегорииНоменклатуры – для указания степени брака.
    РеализацияТоваров с реквизитами:
    Контрагент – тип Справочник.Контрагенты;
    Контактное лицо – Тип Справочник.КонтактныеЛицаКонтрагентов. В свойстве Связи параметров выбора установлено: Отбор.Владелец(Контрагент); в проверке заполнения – выдавать ошибку.
    Табличная часть Товары с реквизитами:
    Номенклатура – тип Справочник.Номенклатура;
    Единица – тип Справочник.ЕдиницыИзмеренияНоменклатуры. В свойстве Связи параметров выбора установлено: Отбор.Владелец(Товары.Номенклатура);
    Количество – тип Число 15.3;
    Цена – тип Число 15.2;
    Сумма – тип Число 17.2;
    Категория – тип Справочник.КатегорииНоменклатуры;
    Для подстановки в документы при выборе номенклатуры базовой единицы по умолчанию в модуле формы документов поступления и реализации присутствуют:
    <code>
    &НаКлиенте
    Процедура ТоварыНоменклатураПриИзменении(Элемент)
    ТД =Элементы.Товары.ТекущиеДанные;
    ПараметрыНоменклатуры = ОбщиеФункцииСервер.ПолучитьПараметрыНоменклатуры(ТД.Номенклатура);
    ТД.Цена = ПараметрыНоменклатуры.Цена;
    ПересчитатьСумму();
    Если ПараметрыНоменклатуры.ВидНоменклатуры = ПредопределенноеЗначение(“Перечисление.ВидыНоменклатуры.Товар”) Тогда
    ТД.Единица = ПараметрыНоменклатуры.БазоваяЕдиница;
    Иначе
    ТД.Категория = 0;
    КонецЕсли;
    КонецПроцедуры

    //В общем модуле ОбщиеФункцииСервер определена функция:
    Функция ПолучитьПараметрыНоменклатуры(Ссылка) Экспорт
    ПараметрыНоменклатуры = Новый Структура;
    Запрос = Новый Запрос;
    Запрос.Текст =
    “ВЫБРАТЬ
    | ЕдиницыИзмеренияНоменклатуры.Ссылка
    |ИЗ
    | Справочник.ЕдиницыИзмеренияНоменклатуры КАК ЕдиницыИзмеренияНоменклатуры
    |ГДЕ
    | ЕдиницыИзмеренияНоменклатуры.Владелец = &Владелец
    | И ЕдиницыИзмеренияНоменклатуры.ЕдиницаПоКлассификатору = &ЕдиницаПоКлассификатору”;
    Запрос.УстановитьПараметр(“Владелец”, Ссылка);
    Запрос.УстановитьПараметр(“ЕдиницаПоКлассификатору”, Ссылка.БазоваяЕдиница);
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    ПараметрыНоменклатуры.Вставить(“БазоваяЕдиница”,ВыборкаДетальныеЗаписи.Ссылка);
    ПараметрыНоменклатуры.Вставить(“Цена”,Ссылка.Цена);
    ПараметрыНоменклатуры.Вставить(“ВидНоменклатуры”,Ссылка.ВидНоменклатуры);
    КонецЕсли;
    Возврат ПараметрыНоменклатуры;
    КонецФункции // ПолучитьБазовуюЕдиницу()
    </code>
    Реализация запчастей как юридическим, так и физическим лицам.
    Создано:
    Перечисление.ЮрФизЛицо со значениями ЮрЛицо, ФизЛицо.
    В справочник Контрагенты добавлен реквизит:
    ЮрФизЛицо – тип Перечисление. ЮрФизЛицо.
    В модуль формы элемента добавлена процедура для заполнения реквизита ЮрФизЛицо по умолчанию:
    <code>
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Не ЗначениеЗаполнено(Объект.ЮрФизЛицо) Тогда
    Объект.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
    КонецЕсли;
    КонецПроцедуры
    </code>
    Фиксация контакта менеджера с клиентом.
    Создано:
    Перечисление.ТипыКонтактов
    со значениями: ЛичнаяВстреча, ТелефонныйЗвонок, Письмо
    Документ.КонтактСКлиентом с реквизитами:
    Контрагент – тип Справочник.Контрагенты
    Контактное лицо – Тип Справочник.КонтактныеЛицаКонтрагентов. В свойстве Связи параметров выбора установлено: Отбор.Владелец(Контрагент)
    ТипКонтакта – тип Перечисление.ТипыКонтактов
    Заголовок – тип Строка 80
    Тема – тип Строка неогр. Длины.

    Ввод на основании справочника Контрагенты.
    Для документов поступления и реализации в модуле объекта определена процедура для ввода на основании справочника.Контрагенты:
    <code>
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип(“СправочникСсылка.Контрагенты”) Тогда
    // Заполнение шапки
    Контрагент = ДанныеЗаполнения.Ссылка;
    //Заполнение ТЧ
    Товары.Загрузить(ОбщиеФункцииСервер.ДанныеПоследнегоДокумента(Контрагент,ЭтотОбъект.Метаданные().Имя));
    КонецЕсли;
    КонецПроцедуры
    </code>
    В общем модуле ОбщиеФункцииСервер определена функция, которая возвращает табличную часть последнего проведенного документа требуемого вида:
    <code>
    Функция ДанныеПоследнегоДокумента(Контрагент,ВидДокумента) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
    “ВЫБРАТЬ
    | *
    |ИЗ
    | Документ.”+ВидДокумента+”.Товары КАК ДокументТовары
    |ГДЕ
    | ДокументТовары.Ссылка В
    | (ВЫБРАТЬ ПЕРВЫЕ 1
    | Документ.Ссылка КАК Ссылка
    | ИЗ
    | Документ.”+ВидДокумента+” КАК Документ
    | где Документ.Проведен
    | и Документ.Контрагент = &Контрагент
    | УПОРЯДОЧИТЬ ПО
    | Документ.МоментВремени УБЫВ)”;

    Запрос.УстановитьПараметр(“Контрагент”, Контрагент);
    Возврат Запрос.Выполнить().Выгрузить();
    КонецФункции
    </code>

    Печать документа реализации.
    В документе.РеализацияТоваров определена Команда «печать»
    В запрос, сформированный конструктором добавлено условие для заголовка накладной:
    <code>

    | ВЫБОР
    | КОГДА РеализацияТоваров.Контрагент.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицо)
    | ТОГДА “”ТОРГ-12″”
    | ИНАЧЕ “”Товарный чек””
    | КОНЕЦ КАК Заголовок
    //В цикл обхода табличной части вставлено вычисление итоговой суммы:
    ИтогСумма = ИтогСумма + ВыборкаТовары.Сумма;
    </code>

    Для вывода в подвале текущего пользователя
    <code>
    Подвал.Параметры.ТекущийПользователь = ОбщиеФункцииСервер.глТекПользователь();

    //в общем модуле ОбщиеФункцииСервер определена функция:
    Функция глТекПользователь() Экспорт
    Возврат Справочники.Пользователи.НайтиПоРеквизиту(“ПользовательИБ”,ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор);
    КонецФункции // глТекПользователь()
    </code>