|
Подскажите как сделать | ☑ | ||
---|---|---|---|---|
0
dantedev
03.12.13
✎
14:03
|
В общих модулях сделал Процедуру для создания временной таблица из которой в дальнейшем я брал бы поля Номенклатура, Сроимость и СрокИсполнения.
Вот код: Процедура СозданиеВТ() Экспорт ТаблицаЗначений = Новый ТаблицаЗначений; ТаблицаЗначений.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов( "СправочникСсылка.Номенклатура")); ТаблицаЗначений.Колонки.Добавить("Стоимость" , Новый ОписаниеТипов( "РегистрСведений.Цены.Стоимость")); ТаблицаЗначений.Колонки.Добавить("СрокИсполнения", Новый ОписаниеТипов( "РегистрСведений.Цены.СрокИсполнения")); //ТаблицаУслуг = ТабличнаяЧасть.Выгрузить(); МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ |ТаблицаЗначений.Номенклатура |ПОМЕСТИТЬ ВыбраннаяНоменклатура |ИЗ |&ТаблицаЗначений КАК ТаблицаЗначений"; Запрос.УстановитьПараметр("ТаблицаЗначений", ТаблицаЗначений); Запрос.Выполнить(); Запрос.Текст = "ВЫБРАТЬ |ВыбраннаяНоменклатура.Номенклатура, |ЦеныСрезПоследних.Стоимость, |ЦеныСрезПоследних.СрокИсполнения, |ИЗ ВыбраннаяНоменклатура КАК ВыбраннаяНоменклатура |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних |(&ДатаЦен, Номенклатура В(&Номенклатура)) |КАК ЦеныНоменклатурыСрезПоследних |ПО ВыбраннаяНоменклатура.Номенклатура = |ЦеныНоменклатурыСрезПоследних.Номенклатура"; Запрос.УстановитьПараметр("Номенклатура",ТаблицаЗначений.ВыгрузитьКолонку ("Номенклатура")); Запрос.УстановитьПараметр("ДатаЦен", ТекущаяДата()); ТаблицаЗначений = Запрос.Выполнить().Выгрузить(); МенеджерВТ.Закрыть(); КонецПроцедуры Не знаю правильная она или нет, так как учить 1с стал недавно. Если не правильная укажите ошибки, постараюсь исправить. Вопрос в следующем, можно ли как-то эту процедуру использовать в коде представленном ниже, для того, чтобы автоматически добавлялись поля СрокИсполнения и Стоимость, которые хранятся в РегистреСведений. &НаКлиенте Процедура ПрейскурантУслугНаименованиеУслугиПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.ПрейскурантУслуг.ТекущиеДанные; СтрокаТабличнойЧасти.Стоимость = ПолучитьСтоимостьУслуги( СтрокаТабличнойЧасти.НаименованиеУслуги, Объект.Дата); СтрокаТабличнойЧасти.СрокИсполнения = ПолучитьСрок( СтрокаТабличнойЧасти.НаименованиеУслуги, Объект.Дата); КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьСтоимостьУслуги(Номенклатура, Знач Дата = Неопределено) Дата = ?(Дата = Неопределено, ТекущаяДата(),Дата); Структура = Новый Структура; Структура.Вставить("Номенклатура",Номенклатура); Данные = МенеджерВТ(Дата,Структура); Возврат Данные.Стоимость; КонецФункции &НаСервереБезКонтекста Функция ПолучитьСрок(Номенклатура, Знач Дата = Неопределено) Дата = ?(Дата = Неопределено, ТекущаяДата(),Дата); Структура = Новый Структура; Структура.Вставить("Номенклатура",Номенклатура); Данные = РегистрыСведений.Цены.ПолучитьПоследнее(Дата,Структура); Возврат Данные.СрокИсполнения; КонецФункции Здесь, в модуле формы документа при создании самого документа и выборе в нем любой из предоставляемых услуг в поля табличной части документа СрокИсполнения и Стоимость автоматически из РегистраСведений добавляются Срок и Стоимость соответствующие данной услуге. |
|||
1
Кир Пластелинин
03.12.13
✎
14:13
|
"Новый ОписаниеТипов("РегистрСведений.Цены.СрокИсполнения")"
жесть. и вообще. а для чего менеджер то? |
|||
2
Trainee
03.12.13
✎
14:47
|
Возможно, я не прав, но то, что ты хочешь, довольно легко создать через подбор.
И будет работать через динамический список, а не временную таблицу, назначение кот. я не уловил. |
|||
3
dantedev
03.12.13
✎
15:29
|
а как это можно сделать через подбор?
просто я учил 1с по книге Радченко и там про подбор ни слово не было сказано, можете просветить? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |