5.1) Необходимо добавить кнопку в форме списка документа, с помощью которой можно просмотреть какие движения делает текущий документ.
Реализация изображена с помощью скриншота
5.2) Задание про фотки сотрудников.
Скачать решение задачи 5.2
5.3) В справочнике «Контрагенты» необходимо создать управляемую основную форму элемента, в которой пользователь сможет увидеть все движения с участием этого контрагента по регистру бухгалтерии. Доступ к этой информации должен осуществляться из панели навигации.
1) Добавляем форму списка регистра бухгалтерии
2) Добавляем параметр "Контрагент"в эту форму.
3) Делаем произвольный запрос для динамического списка, в нем добавляем условие на субконто.
4) Устанавливаем параметр запроса динамического списка
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Список.Параметры.УстановитьЗначениеПараметра("Контрагент", Параметры.Контрагент);
КонецПроцедуры
5) Добавляем команду в справочник контрагенты
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПараметрыФормы = Новый Структура("Контрагент", ПараметрКоманды );
ОткрытьФорму("РегистрБухгалтерии.Управленческий.Форма.ФормаСпискаОтборПОКонтрагенту", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
КонецПроцедуры
Скачать решение задачи 5.3 (на базе задачи 2.25)
5.4) Организовать хранение продажных цен деталей в разрезе типов цен (оптовые, розничные и т.д.). В документе «Расходная накладная» необходимо иметь возможность указывать тип цен, по которым осуществляется отпуск товара. В форме выбора деталей, для каждой детали, дополнительно необходимо отображать ее цену (согласно указанному в документе типу цен), а также текущий остаток на складе. Склад, как и тип цен, указывается в шапке документа «Расходная накладная». При выборе детали в документ должна добавляться не только сама деталь, но и соответствующая цена
1) Добавляем в РН необходимые реквизиты (Склад, ВидЦены).
2) Добавляем на форму команду подбора.
Процедура Подбор(Команда)
Парам = Новый Структура("ДатаСреза, ВидЦены,Склад", Объект.Дата,Объект.ВидЦены,Объект.Склад);
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора", Парам, Элементы.СписокНоменклатуры);
КонецПроцедуры
3)Добавляем форму выбора справочника "Номенклатура" и добавляем необходимые параметры на форму.
4) Для динамического списка изменяем запрос на произвольный.
Соединяем таблицу номенклатуры с регистрами накопления(для получения остатков и регистром сведений для получения цены).
ВЫБРАТЬ
СправочникНоменклатура.Ссылка,
СправочникНоменклатура.ПометкаУдаления,
СправочникНоменклатура.Родитель,
СправочникНоменклатура.ЭтоГруппа,
СправочникНоменклатура.Код,
СправочникНоменклатура.Наименование,
СправочникНоменклатура.ТипТовара,
СправочникНоменклатура.Предопределенный,
СправочникНоменклатура.ИмяПредопределенныхДанных,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Остаток,
ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Цена
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(&ДатаСреза, Склад = &Склад) КАК ОстаткиНоменклатурыОстатки
ПО СправочникНоменклатура.Ссылка = ОстаткиНоменклатурыОстатки.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаСреза, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
5) Заполняем параметры в форме выбора.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Список.Параметры.УстановитьЗначениеПараметра("Склад", Параметры.Склад);
Список.Параметры.УстановитьЗначениеПараметра("ВидЦены", Параметры.ВидЦены);
Список.Параметры.УстановитьЗначениеПараметра("ДатаСреза", Параметры.ДатаСреза);
КонецПроцедуры
6) Обрабатываем выбор значения.
&НаКлиенте
Процедура СписокВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекДанные = Элемент.ТекущиеДанные;
СтруктураЗначений = Новый Структура("Номенклатура, Цена", Значение, ТекДанные.Цена);
ОповеститьОВыборе(СтруктураЗначений);
КонецПроцедуры
7) В Расходной накладной
&НаКлиенте
Процедура СписокНоменклатурыНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
СтандартнаяОбработка = Ложь;
НоваяСтрока = Объект.СписокНоменклатуры.Добавить();
НоваяСтрока.Номенклатура = ВыбранноеЗначение.Номенклатура;
НоваяСтрока.Цена = ВыбранноеЗначение.Цена;
КонецЕсли;
КонецПроцедуры