Можно ли узнать из какого пункта меню вывается документ-список? Есть Документ. У документа есть ФормаСписок.
Как узнать, из какого пункта меню открывается этот список?
Дело в том, что в зависимости от того, откуда открывается эта форма, должен устанавливаться разный фильтр:
Код 1C v 8.х Если <вызов из Пункта1> Тогда
<Фильтр поле1 = 1>
ИначеЕсли <вызов из Пункта2> Тогда
<Фильтр поле1 = 2>
ИначеЕсли <вызов из Пункта3> Тогда
<Фильтр поле1 = 3>
КонецЕсли;
Ответ:
Возможности определить откуда было открыто - нет! *08
Как
варинат предлагаю создать несколько форм с разными фильтрами и в каждом пункте меню указать открытие своей формы списка (
В свойствах элемента панели - Основные свойства - Форма )!
Категория:
Список Справочника, Документов, Регистров Функция загружает весь табличный документ в таблицу значений Код 1C v 8.х // Вариант 1
// По переданному табличному документу возвращает таблицу значений,
// при условии что в первой строке таблицы - идентификаторы колонок
// Автор : dimoff
Функция ПолучитьТЗИзМакета(ТабДок, КолонкаИндекса = 1) Экспорт
ТаблицаДанных = Новый ТаблицаЗначений;
НомерКолонки = 0;
Пока Истина Цикл
НомерКолонки = НомерКолонки + 1;
ИмяКолонки = ТабДок.Область(1, НомерКолонки).Текст;
Если ПустаяСтрока(ИмяКолонки) Тогда
Прервать;
КонецЕсли;
ТаблицаДанных.Колонки.Добавить(ИмяКолонки);
КонецЦикла;
СчетчикКолонок = НомерКолонки - 1;
НомерСтроки = 1; ФлагПрерывания = Ложь;
Пока Истина Цикл
НомерСтроки = НомерСтроки + 1;
Стр = ТаблицаДанных.Добавить();
Для А = 1 ПО СчетчикКолонок Цикл
ТекстКолонки = ТабДок.Область(НомерСтроки, А).Текст;
Если ПустаяСтрока(ТекстКолонки) Тогда
Если А = КолонкаИндекса Тогда
Флагпрерывания = Истина;
ТаблицаДанных.Удалить(Стр);
КонецЕсли;
Иначе
Стр[А - 1] = ТекстКолонки
КонецЕсли;
Если Флагпрерывания Тогда
Прервать
КонецЕсли;
КонецЦикла;
Если Флагпрерывания Тогда
Прервать
КонецЕсли;
КонецЦикла;
Возврат ТаблицаДанных
КонецФункции
// Варинат 2
//Функция загружает весь макет, табличный документ в таблицу значений
//Первая строка содержит подписи колонок (должны быть правильные идентификаторы)
//Пустые строки (состоящией из пробелов, переводов строки и т.п.) заменяет на Неопределено
//Если в ячейке есть значение, в ячейку таблицы значений попадает именно это значение
//Автор : Гений1С
Функция обМакетВТаблицуЗначений(Макет) Экспорт
Перем ТЗ;
ТЗ=Новый ТаблицаЗначений();
#Если Клиент Тогда
//Считываем колонки
Для Стр=1 По Макет.ВысотаТаблицы Цикл
Если Стр>1 Тогда
ТекСтр=ТЗ.Добавить();
КонецЕсли;
ПустаяСтрока=истина;
Для Кол=1 По Макет.ШиринаТаблицы Цикл
Яч=Макет.Область(Стр, Кол);
Если Яч.СодержитЗначение Тогда
Зн=Яч.Значение;
Иначе
Зн=Яч.Текст;
КонецЕсли;
Если ТипЗнч(Зн)=Тип("Строка") И ПустаяСтрока(Зн) Тогда
Зн=Неопределено;
КонецЕсли;
//Добавляем колонку
Если Стр=1 Тогда
ТЗ.Колонки.Добавить(Зн);
Иначе
ТекСтр[Кол-1]=Зн;
КонецЕсли;
КонецЦикла;
КонецЦикла;
#КонецЕсли
Возврат ТЗ;
КонецФункции
Категория:
Табличный документ