|
Значение соседней ячейки СКД | ☑ | ||
---|---|---|---|---|
0
NewBieOneS
14.09.14
✎
16:47
|
Здравствуйте!
Пишу отчет (СКД, УП), в котором из регистра накопления (остатки) выводятся следующие колонки: "Номенклатура", "НачальныйОстаток", "Резерв", "КонечныйОстаток". Группировок нет, только детальные записи. Необходимо при двойном клике по ячейке из колонки "Резерв" выводить в окно сообщений перечень документов, которые произвели движения. На данный момент мне удалось решить эту задачу, только при двойном клике на ячейку из колонки "Номенклатура". А вот как при нажатии на колонку "Резерв" получить значение из колонки "Номенклатура" данной строки я не знаю. Значение необходимо для использования в функции "ПолучитьСписокДокументов()" Помогите, пожалуйста. Привожу код: &НаСервере Функция ПолучитьРасшифровку(Расшифровка) Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки); // Получаем данные расшифровки в удобоваримом виде Поля = Данные.Элементы[Расшифровка].ПолучитьПоля(); // Получаем поля расшифровки ПолеНоменклатура = Поля.Найти("Номенклатура"); Если ПолеНоменклатура = Неопределено Тогда Возврат Неопределено; Иначе Возврат ПолеНоменклатура.Значение; КонецЕсли; КонецФункции &НаСервере Функция ПолучитьСписокДокументов(Номенклатура, НачалоПериода, КонецПериода) // Здесь получаем список документов запросом по входящим параметрам КонецФункции &НаКлиенте Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыбранноеДействие; Перем ПараметрыВыбранногоДействия; Номенклатура = ПолучитьРасшифровку(Расшифровка); Если Номенклатура = Неопределено Тогда Возврат; // Выбрано ненужное поле - оставляем стандартную обработку КонецЕсли; СтандартнаяОбработка = Ложь; ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет)); ДополнительныеДействия = Новый СписокЗначений; ДополнительныеДействия.Добавить("Открыть список загрузочных листов"); // Осуществим выбор действия расшифровки пользователем ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыбранноеДействие, ПараметрыВыбранногоДействия, , ДополнительныеДействия); Если ПараметрыВыбранногоДействия <> Неопределено Тогда // Если заполнено - значит выполнено типовое действие Если ВыбранноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда ОткрытьЗначение(ПараметрыВыбранногоДействия); Иначе НоваяРасшифрока = Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Расшифровка, ПараметрыВыбранногоДействия); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина); ПараметрыФормы.Вставить("Расшифровка", НоваяРасшифрока); ОткрытьФорму("Отчет.ОтчетПоОстаткам.Форма", ПараметрыФормы, , Истина); КонецЕсли; Иначе // Либо нетиповое действие, либо отмена Если ВыбранноеДействие <> ДействиеОбработкиРасшифровкиКомпоновкиДанных.Нет Тогда // Если НЕ отмена ПользовательскиеНастройки = ЭтаФорма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; ПараметрыДанных = ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы; ИдентификаторНачалоТекущегоПериода = ПараметрыДанных.Найти("НачалоТекущегоПериода").ИдентификаторПользовательскойНастройки; ИдентификаторКонецТекущегоПериода = ПараметрыДанных.Найти("КонецТекущегоПериода").ИдентификаторПользовательскойНастройки; НачалоТекущегоПериода = ПользовательскиеНастройки.Найти(ИдентификаторНачалоТекущегоПериода).Значение.Дата; КонецТекущегоПериода = ПользовательскиеНастройки.Найти(ИдентификаторКонецТекущегоПериода).Значение.Дата; СписокДокументов = ПолучитьСписокДокументов(Номенклатура, НачалоТекущегоПериода, КонецТекущегоПериода); Если СписокДокументов.Количество() > 0 Тогда ВыбранныйДок = СписокДокументов.ВыбратьЭлемент("Документы резервирования"); Если ВыбранныйДок <> Неопределено Тогда ОткрытьЗначение(ВыбранныйДок.Значение); КонецЕсли; Иначе Предупреждение("Документы не найдены!"); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
1
Wobland
14.09.14
✎
17:21
|
тыкай на номенклатуру и не люби мозх
|
|||
2
NewBieOneS
14.09.14
✎
17:23
|
(1) я уже вылюбил весь мозг себе и гуглить задолбался. Задача неразрешима или слишком сложна в реализации?
|
|||
3
Wobland
14.09.14
✎
17:31
|
(2) ты хочешь странного: по тыку в число как-то узнавать номенклатуру. есть такой прикол у табдокумента - расшифровка по строке. но дешевле закончить и забить имхо
|
|||
4
romashov
15.09.14
✎
06:44
|
а если сделать свой макет, и в состав расшифровки "количества" включить номенклатуру.
|
|||
5
ИС-2
naïve
15.09.14
✎
07:54
|
можно сделать так:
добавляем вычисляемое поле Псевдо резерв: данные у него номенклатура, а вот выражение представления - резерв. В итоге когда кликаешь в данных должна быть номенклатура, а по ней раскручиваешь цепочку |
|||
6
ИС-2
naïve
15.09.14
✎
07:54
|
но если отчет простой, то можно тупо обратить к соседней ячейке табличного документа
|
|||
7
Crush
15.09.14
✎
09:04
|
(0) Для элемента расшифровки получить родителей
|
|||
8
NewBieOneS
15.09.14
✎
20:16
|
(7) ПолучитьРодителей()[0].ПолучитьПоля() - не катит, т.к. детальные записи без группировки
(5) Вариант. Попробую. Спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |