![]() |
|
Загрузка в реквизит дерево значений, привязанный к табличному полю на обычной ф. | ☑ | ||
---|---|---|---|---|
0
Vladislava-smile
20.10.15
✎
10:49
|
На обычной форме есть таб. поле. К нему привязан реквизит дерево значений. Создаю колонки программно перед открытием:
Функция СоздатьКолонкиВДеревеЗначений() КолонкиДереваОтгрузок = ДеревоОтгрузок.Колонки; // ---------------- Отгрузки ---------------------------------------- КЧ = Новый КвалификаторыЧисла(10,3); МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("ДокументСсылка.ОтгрузкаТовара")); МассивТипов.Добавить(Тип("ДокументСсылка.РеализацияТоваровУслуг")); МассивТипов.Добавить(Тип("ДокументСсылка.ПоступлениеТоваровУслуг")); МассивТипов.Добавить(Тип("ДокументСсылка.ПеремещениеТоваров")); МассивТипов.Добавить(Тип("ДокументСсылка.СписаниеТоваров")); КолонкиДереваОтгрузок.Добавить("Ссылка", Новый ОписаниеТипов(МассивТипов), "Отгрузка", 20); МассивТипов.Очистить(); // ---------------- Организация ---------------------------------------- МассивТипов.Добавить(Тип("СправочникСсылка.Организации")); МассивТипов.Добавить(Тип("СправочникСсылка.Контрагенты")); КолонкиДереваОтгрузок.Добавить("Организация", Новый ОписаниеТипов(МассивТипов), "Организация", 15); МассивТипов.Очистить(); // ---------------- Транспортная компания ---------------------------------------- МассивТипов.Добавить(Тип("СправочникСсылка.Контрагенты")); КолонкиДереваОтгрузок.Добавить("ТранспортнаяКомпания", Новый ОписаниеТипов(МассивТипов), "Транспортная компания", 15); МассивТипов.Очистить(); // ---------------- Сумма сделки ---------------------------------------- МассивТипов.Добавить(Тип("Число")); КолонкиДереваОтгрузок.Добавить("Сумма", Новый ОписаниеТипов(МассивТипов,,, КЧ), "Сумма сделки", 10); МассивТипов.Очистить(); // ---------------- Транспортные затраты ---------------------------------------- МассивТипов.Добавить(Тип("Число")); КолонкиДереваОтгрузок.Добавить("ТранспортныеЗатраты", Новый ОписаниеТипов(МассивТипов,,,КЧ), "Транспортные затраты", 10); МассивТипов.Очистить(); // ---------------- С/с ---------------------------------------- МассивТипов.Добавить(Тип("Число")); КолонкиДереваОтгрузок.Добавить("СС", Новый ОписаниеТипов(МассивТипов,,,КЧ), "С/с", 10); МассивТипов.Очистить(); // ---------------- Процент транспортных затрат ---------------------------------------- МассивТипов.Добавить(Тип("Число")); КолонкиДереваОтгрузок.Добавить("ПроцентТранспортныхЗатрат", Новый ОписаниеТипов(МассивТипов,,,КЧ), "% транспортных затрат", 10); МассивТипов.Очистить(); // ---------------- Прибыль ---------------------------------------- МассивТипов.Добавить(Тип("Число")); КолонкиДереваОтгрузок.Добавить("Прибыль", Новый ОписаниеТипов(МассивТипов,,,КЧ), "Прибыль", 10); МассивТипов.Очистить(); // ---------------- Маржа ---------------------------------------- МассивТипов.Добавить(Тип("Число")); КолонкиДереваОтгрузок.Добавить("Маржа", Новый ОписаниеТипов(МассивТипов,,,КЧ), "Маржа, %", 10); МассивТипов.Очистить(); // ---------------- Согласован ---------------------------------------- МассивТипов.Добавить(Тип("Булево")); КолонкиДереваОтгрузок.Добавить("Согласован", Новый ОписаниеТипов(МассивТипов), "Согласован", 10); МассивТипов.Очистить(); // ---------------- Не согалсован ---------------------------------------- МассивТипов.Добавить(Тип("Булево")); КолонкиДереваОтгрузок.Добавить("НеСогласован", Новый ОписаниеТипов(МассивТипов), "Не согласован", 10); МассивТипов.Очистить(); // ---------------- Кто согласовал ---------------------------------------- МассивТипов.Добавить(Тип("СправочникСсылка.Пользователи")); КолонкиДереваОтгрузок.Добавить("КтоСогласовалИлиНеСогласовал", Новый ОписаниеТипов(МассивТипов), "Кем согласован/не согласован/отменен", 10); МассивТипов.Очистить(); // ---------------- Когда согласовал ---------------------------------------- МассивТипов.Добавить(Тип("Дата")); КолонкиДереваОтгрузок.Добавить("ДатаСогласованияИлиНеСогласования", Новый ОписаниеТипов(МассивТипов), "Дата изменения статуса", 15); ЭлементыФормы.Отгрузка.СоздатьКолонки(); ЭлементыФормы.Отгрузка.Колонки.Ссылка.ОтображатьИерархию=Истина; ЭлементыФормы.Отгрузка.Колонки.Согласован.ДанныеФлажка="Согласован"; ЭлементыФормы.Отгрузка.Колонки.Согласован.Данные=""; ЭлементыФормы.Отгрузка.Колонки.Согласован.ТолькоПросмотр=Ложь; ЭлементыФормы.Отгрузка.Колонки.Согласован.РежимРедактирования=РежимРедактированияКолонки.Непосредственно; ЭлементыФормы.Отгрузка.Колонки.НеСогласован.ДанныеФлажка="Согласован"; ЭлементыФормы.Отгрузка.Колонки.НеСогласован.Данные=""; ЭлементыФормы.Отгрузка.Колонки.НеСогласован.ТолькоПросмотр=Ложь; ЭлементыФормы.Отгрузка.Колонки.НеСогласован.РежимРедактирования=РежимРедактированияКолонки.Непосредственно; КонецФункции Потом по кнопке заполняю: Результат = ВыгрузитьДоки(ЭлементыФормы.Флажок1.Значение).Выполнить(); Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий() Цикл ДеревоОтгрузка = ДеревоОтгрузок.Строки.Добавить(); ДеревоОтгрузка.Ссылка = Выборка.Ссылка ; ВыборкаДокументВОтгрузке = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаДокументВОтгрузке.Следующий() Цикл ДеревоОтгрузкаДокументВОтгрузке = ДеревоОтгрузок.Строки.Добавить(); ДеревоОтгрузкаДокументВОтгрузке.Ссылка = ВыборкаДокументВОтгрузке.ДокументВОтгрузке ; КонецЦикла; КонецЦикла; Из запроса: Запрос=Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ | ОтгрузкаТовараКонтакты.Ссылка.Ссылка КАК Ссылка, | Себестомость.ДокументВОтгрузке КАК ДокументВОтгрузке, | ОтгрузкаТовараКонтакты.Организация КАК Организация, | ЕСТЬNULL(ОтгрузкаТовараКонтакты.Ссылка.СуммаТранспортных, 0) КАК ТранспортныеЗатраты, | ТранспортнаяКомпания.Организация КАК ТранспортнаяКомпания, | Себестомость.Цена * Себестомость.Количество КАК СС, | Себестомость.СуммаДокумента КАК СуммаДокумента, | Себестомость.СтатьяДДС, | ОтгрузкаТовараКонтакты.Ссылка.Согласован КАК Согласован, | ОтгрузкаТовараКонтакты.Ссылка.НеСогласован КАК НеСогласован, | ОтгрузкаТовараКонтакты.Ссылка.ДатаСогласованияИлиНеСогласования КАК ДатаСогласованияИлиНеСогласования, | ОтгрузкаТовараКонтакты.Ссылка.КтоСогласовалИлиНеСогласовал КАК КтоСогласовалИлиНеСогласовал |ИЗ | Документ.ОтгрузкаТовара.Контакты КАК ОтгрузкаТовараКонтакты | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ОтгрузкаТовараКонтакты.Организация КАК Организация, | ОтгрузкаТовараКонтакты.Ссылка КАК Ссылка | ИЗ | Документ.ОтгрузкаТовара.Контакты КАК ОтгрузкаТовараКонтакты | ГДЕ | ОтгрузкаТовараКонтакты.ВидКонтакта = &ВидконтактаТранспортнаяКомпания) КАК ТранспортнаяКомпания | ПО ОтгрузкаТовараКонтакты.Ссылка = ТранспортнаяКомпания.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка КАК ДокументВОтгрузке, | ОтгрузкаТовараДокументы.Ссылка КАК СсылкаДляСвязи, | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, | РеализацияТоваровУслугТовары.Количество КАК Количество, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена, | РеализацияТоваровУслугТовары.Ссылка.СуммаДокумента КАК СуммаДокумента, | СтатьиДвиженияДенежныхСредств.Ссылка КАК СтатьяДДС | ИЗ | Документ.ОтгрузкаТовара.Документы КАК ОтгрузкаТовараДокументы | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО РеализацияТоваровУслугТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И РеализацияТоваровУслугТовары.Ссылка.Склад.ТипЦенСебестоимости.ПараллельныйТипЦен = ЦеныНоменклатурыСрезПоследних.ТипЦен | ПО ОтгрузкаТовараДокументы.Документ.Ссылка = РеализацияТоваровУслугТовары.Ссылка, | Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств | ГДЕ | РеализацияТоваровУслугТовары.Ссылка <> ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка) | И СтатьиДвиженияДенежныхСредств.Код = ""125013"" | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ПеремещениеТоваровТовары.Ссылка, | ОтгрузкаТовараДокументы.Ссылка, | ПеремещениеТоваровТовары.Номенклатура, | ПеремещениеТоваровТовары.Количество, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0), | 0, | СтатьиДвиженияДенежныхСредств.Ссылка | ИЗ | Документ.ОтгрузкаТовара.Документы КАК ОтгрузкаТовараДокументы | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО ПеремещениеТоваровТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И ПеремещениеТоваровТовары.Ссылка.СкладОтправитель.ТипЦенСебестоимости.ПараллельныйТипЦен = ЦеныНоменклатурыСрезПоследних.ТипЦен | ПО ОтгрузкаТовараДокументы.Документ.Ссылка = ПеремещениеТоваровТовары.Ссылка, | Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств | ГДЕ | ПеремещениеТоваровТовары.Ссылка <> ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка) | И СтатьиДвиженияДенежныхСредств.Код = ""125011"" | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Ссылка, | ОтгрузкаТовараДокументы.Ссылка, | ПоступлениеТоваровУслугТовары.Номенклатура, | ПоступлениеТоваровУслугТовары.Количество, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0), | ПоступлениеТоваровУслугТовары.Ссылка.СуммаДокумента, | СтатьиДвиженияДенежныхСредств.Ссылка | ИЗ | Документ.ОтгрузкаТовара.Документы КАК ОтгрузкаТовараДокументы | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО ПоступлениеТоваровУслугТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И ПоступлениеТоваровУслугТовары.Ссылка.СкладОрдер.ТипЦенСебестоимости.ПараллельныйТипЦен = ЦеныНоменклатурыСрезПоследних.ТипЦен | ПО ОтгрузкаТовараДокументы.Документ.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка, | Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств | ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка <> ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка) | И СтатьиДвиженияДенежныхСредств.Код = ""125014"" | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | СписаниеТоваровТовары.Ссылка, | ОтгрузкаТовараДокументы.Ссылка, | СписаниеТоваровТовары.Номенклатура, | СписаниеТоваровТовары.Количество, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0), | 0, | NULL | ИЗ | Документ.ОтгрузкаТовара.Документы КАК ОтгрузкаТовараДокументы | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СписаниеТоваров.Товары КАК СписаниеТоваровТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО СписаниеТоваровТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И СписаниеТоваровТовары.Ссылка.Склад.ТипЦенСебестоимости.ПараллельныйТипЦен = ЦеныНоменклатурыСрезПоследних.ТипЦен | ПО ОтгрузкаТовараДокументы.Документ.Ссылка = СписаниеТоваровТовары.Ссылка | ГДЕ | СписаниеТоваровТовары.Ссылка <> ЗНАЧЕНИЕ(Документ.СписаниеТоваров.ПустаяСсылка)) КАК Себестомость | ПО ОтгрузкаТовараКонтакты.Ссылка = Себестомость.СсылкаДляСвязи |ГДЕ | ОтгрузкаТовараКонтакты.ВидКонтакта = &ВидКонтактаПлательщик | И ОтгрузкаТовараКонтакты.Организация.Код В(&Плательщик) | И ВЫБОР | КОГДА &СогласованИлиНет = ИСТИНА | ТОГДА ИСТИНА | ИНАЧЕ ОтгрузкаТовараКонтакты.Ссылка.Согласован = &СогласованИлиНет | И ОтгрузкаТовараКонтакты.Ссылка.НеСогласован = &СогласованИлиНет | КОНЕЦ | И ОтгрузкаТовараКонтакты.Ссылка.Подразделение = &Подразделение | И ОтгрузкаТовараКонтакты.Ссылка.ФайлТТН = """" | И ОтгрузкаТовараКонтакты.Ссылка.ПометкаУдаления = ЛОЖЬ | И ОтгрузкаТовараКонтакты.Ссылка.Дата >= ДАТАВРЕМЯ(2015, 10, 1, 0, 0, 0) |ИТОГИ | СУММА(ТранспортныеЗатраты), | СУММА(СС), | СУММА(СуммаДокумента), | Согласован КАК Согласован, | НеСогласован КАК НеСогласован, | ДатаСогласованияИлиНеСогласования КАК ДатаСогласованияИлиНеСогласования, | КтоСогласовалИлиНеСогласовал КАК КтоСогласовалИлиНеСогласовал |ПО | Ссылка, | ДокументВОтгрузке"); Результат: https://dropmefiles.com/kW9qs Нужно, чтобы было раскрытие, и "+" тоже отображались. Подскажите пжлст, можно так сделать или нет? |
|||
1
Lexey_
20.10.15
✎
10:52
|
(0) КолонкаТабличногоПоля (TableBoxColumn)
ОтображатьИерархию (ShowHierarchy) Использование: Чтение и запись. Описание: Тип: Булево. Содержит признак вывода линий иерархии и пиктограмм раскрытия узлов дерева. Истина - отображается |
|||
2
Vladislava-smile
20.10.15
✎
10:55
|
(1) - Написано уже:
ЭлементыФормы.Отгрузка.Колонки.Ссылка.ОтображатьИерархию=Истина; |
|||
3
Lexey_
20.10.15
✎
10:55
|
(2) иерархии нет
Пока ВыборкаДокументВОтгрузке.Следующий() Цикл ДеревоОтгрузкаДокументВОтгрузке = ДЕРЕВООТГРУЗКА.Строки.Добавить(); ДеревоОтгрузкаДокументВОтгрузке.Ссылка = ВыборкаДокументВОтгрузке.ДокументВОтгрузке ; КонецЦикла; |
|||
4
Vladislava-smile
20.10.15
✎
11:02
|
(3) Блин, не соображу (( Можно по-подробнее немного или примерчик, если есть какой-нить ...
|
|||
5
Lexey_
20.10.15
✎
11:07
|
(4) куда уж подробнее, в (3) примерчик, готовый код написан, а вообще вот этого достаточно, без предварительного создания колонок:
ДеревоОтгрузок = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ЭлементыФормы.ДеревоОтгрузок.СоздатьКолонки(); только я хз как у тебя дерево называется, переименуй если че |
|||
6
Lexey_
20.10.15
✎
11:10
|
(5) + в запросе должна быть иерархия, естественно
|
|||
7
Vladislava-smile
20.10.15
✎
12:12
|
(5) - не получается.
Запрос=Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ | ОтгрузкаТовараДокументы.Ссылка.Ссылка КАК Ссылка, | ОтгрузкаТовараДокументы.Документ |ИЗ | Документ.ОтгрузкаТовара.Документы КАК ОтгрузкаТовараДокументы |ГДЕ | ОтгрузкаТовараДокументы.Ссылка.Подразделение = &Подразделение |ИТОГИ ПО | Ссылка"); Делаю так как ты сказал ДеревоОтгрузок = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ЭлементыФормы.Отгрузки.СоздатьКолонки(); Получаю: Отгрузка 1 Документ отгрузка 1 Реализация 1 А надо, чтобы было Отгрузка 1 Реализация 1 |
|||
8
НЕА123
20.10.15
✎
12:21
|
(7)
"ну вот оно - дерево" (3) ДеревоОтгрузкаДокументВОтгрузке = ДЕРЕВООТГРУЗКА.Строки.Добавить(); |
|||
9
Vladislava-smile
20.10.15
✎
12:27
|
(8) Результат = ВыгрузитьДоки(ЭлементыФормы.Флажок1.Значение).Выполнить();
Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока Выборка.Следующий() Цикл ДеревоОтгрузка = ДеревоОтгрузок.Строки.Добавить(); ДеревоОтгрузка.Ссылка = Выборка.Ссылка ; ВыборкаДокументВОтгрузке = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаДокументВОтгрузке.Следующий() Цикл ДеревоОтгрузкаДокументВОтгрузке = ДеревоОтгрузок.Строки.Добавить(); ДеревоОтгрузкаДокументВОтгрузке.Ссылка = ВыборкаДокументВОтгрузке.ДокументВОтгрузке ; КонецЦикла; КонецЦикла; В верхнем обходе - отгрузка, во втором - реалка, заполняется верно, только без подстрочек, а просто списком. |
|||
10
Vladislava-smile
20.10.15
✎
12:34
|
Вопрос закрыт, спс )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |