Справочные материалы по 1С
Табличное поле в 1С 8.x
Как запретить пользователю изменять порядок следования колонок в табличном поле?
// Запрет изменения позиций ВСЕХ колонок
ЭлементыФормы.ТабличноеПоле.ИзменятьПозициюКолонок = Ложь;
// Запрет для некоторых
ЭлементыФормы.ТабличноеПоле.Колонки.Картинка.ИзменятьПозицию = Ложь;
ЭлементыФормы.ТабличноеПоле.Колонки.Код.ИзменятьПозицию = Ложь;
ЭлементыФормы.ТабличноеПоле.Колонки.Наименование.ИзменятьПозицию = Ложь;
Как запретить пользователю изменять любые настройки колонок табличного поля?
// Запрет изменения настроек ВСЕХ колонок
ЭлементыФормы.ТабличноеПоле.ИзменятьНастройкуКолонок = Ложь;
// Запрет для некоторых
ЭлементыФормы.ТабличноеПоле.Колонки.Картинка.ИзменятьНастройку = Ложь;
ЭлементыФормы.ТабличноеПоле.Колонки.Код.ИзменятьНастройку = Ложь;
ЭлементыФормы.ТабличноеПоле.Колонки.Наименование.ИзменятьНастройку = Ложь;
Как вывести информацию о том, какой отбор установлен в журнале документов?
// Вывод в надпись
ЭлементыФормы.НадписьОтбор.Заголовок = СписокДокументов.Отбор;
// Вывод в строку сообщений
УстановленныйОтбор = СписокДокументов.Отбор;
Сообщить("Элементы отбора:");
Для Каждого ЭлементОтбора из УстановленныйОтбор Цикл
Сообщить(Строка(ЭлементОтбора) + " использование = " + ЭлементОтбора.Использование);
КонецЦикла;
Как в форме справочника установить курсор на элемент с известным наименованием?
ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Справочники.Контрагенты.НайтиПоНаименованию("ПОСТАВЩИКИ", Истина);
Как в форме списка сделать отбор по значению реквизита?
СправочникСписок.Отбор.СтавкаНДС.Установить(Перечисления.СтавкиНДС.НДС18);
// Еще вариант
СправочникСписок.Отбор.СтавкаНДС.Значение = Перечисления.СтавкиНДС.НДС18; // По какому значению отбор
СправочникСписок.Отбор.СтавкаНДС.ВидСравнения = ВидСравнения.Равно; // Вид сравнения (равно, не равно, в списке и пр.)
СправочникСписок.Отбор.СтавкаНДС.Использование = Истина; // Признак того, что отбор используется
Как запретить выдачу сообщения: "Введенные данные не отображены в списке, так как не соответствуют отбору" при добавлении новых элементов в справочник?
ЭлементыФормы.ПолеСписка.ПроверкаОтображенияНовойСтроки = ВариантПроверкиОтображенияНовойСтроки.НеПроверять;
Как заполнить ячейку табличного поля данными?
Процедура ТабличноеПолеЗаказовЗаказПриИзменении(Элемент)
// Получить текущую строку табличного поля.
СтрокаТаблицы = ЭлементыФормы.ТабличноеПолеЗаказов.ТекущаяСтрока;
// Ввести значения в ячейки строки.
СтрокаТаблицы.Контрагент = СтрокаТаблицы.Заказ.Контрагент;
СтрокаТаблицы.ДатаОтгрузки = СтрокаТаблицы.Заказ.ДатаОтгрузки;
КонецПроцедуры
Как изменить цвет фона ячейки табличного поля в зависимости от значения, выводимого в нее?
Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ЗначениеЯчейкиОстаток = ОформлениеСтроки.Ячейки.Остаток.Значение;
Если ЗначениеЯчейкиОстаток <> Неопределено Тогда
Если ЗначениеЯчейкиОстаток < 10 Тогда
ОформлениеСтроки.Ячейки.Остаток.ЦветФона = WebЦвета.Красный;
ИначеЕсли ЗначениеЯчейкиОстаток > 100 Тогда
ОформлениеСтроки.Ячейки.Остаток.ЦветФона = WebЦвета.Желтый;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Как в табличное поле "ВыбранныеКонтрагенты" добавить новую колонку "ОсновнойДоговор", заполнить ее значения и дать возможность открытия этих значений?
Если ТаблицаКонтрагентов.Колонки.Найти("ОсновнойДоговор") = Неопределено Тогда
МассивТипов = Новый Массив();
МассивТипов.Добавить(Тип("СправочникСсылка.ДоговорыКонтрагентов"));
ОписаниеНужныхТипов = Новый ОписаниеТипов(МассивТипов);
ТаблицаКонтрагентов.Колонки.Добавить("ОсновнойДоговор", ОписаниеНужныхТипов);
КонецЕсли;
Для Каждого СтрокаТаблицы из ТаблицаКонтрагентов Цикл
СтрокаТаблицы["ОсновнойДоговор"] = СтрокаТаблицы["Контрагент"]["ОсновнойДоговорКонтрагента"];
КонецЦикла;
ЭлементыФормы.ВыбранныеКонтрагенты.СоздатьКолонки();
ЭлементыФормы.ВыбранныеКонтрагенты.Колонки.ОсновнойДоговор.ЭлементУправления.КнопкаОткрытия = Истина;
Как задать список выбора для колонки "ВидДокумента" табличного поля?
Процедура ПриОткрытии()
СписокВидовДокументов = Новый СписокЗначений;
Для Каждого ДокументКонфигурации из Метаданные.Документы Цикл
СписокВидовДокументов.Добавить(ДокументКонфигурации.Имя);
КонецЦикла;
ЭлементыФормы.ПодборДанных.Колонки.ВидДокумента.ЭлементУправления.СписокВыбора = СписокВидовДокументов;
КонецПроцедуры
ЭлементыФормы.ПодборДанных.Колонки.ВидДокумента.ЭлементУправления.КнопкаСпискаВыбора = Истина;
Как обеспечить возможность отбора и сортировки данных по реквизитам, не отображаемым в табличном поле формы списка справочника?
ЭлементыФормы.СправочникСписок.НастройкаОтбора.ОсновнойПоставщик.Доступность = Истина;
ЭлементыФормы.СправочникСписок.НастройкаПорядка.ОсновнойПоставщик.Доступность = Истина;
Как реализовать перетаскивание между элементами управления?
Процедура НоменклатураНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
// Получить значение, переданное системой.
Значение = ПараметрыПеретаскивания.Значение;
// В любом случае значением будет массив.
МассивЗначений = Новый Массив;
// Если перетаскивается группа, то в массив записываем входящие в нее элементы.
Если Значение.ЭтоГруппа Тогда
Выборка = Справочники.Номенклатура.Выбрать(Значение);
Пока Выборка.Следующий() Цикл
Если Не Выборка.ЭтоГруппа Тогда
МассивЗначений.Добавить(Выборка.Ссылка);
КонецЕсли;
КонецЦикла;
Иначе
МассивЗначений.Добавить(Значение);
КонецЕсли;
// Заполненный массив записываем в параметры.
ПараметрыПеретаскивания.Значение = МассивЗначений;
КонецПроцедуры
Процедура ТоварыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Процедура ТоварыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
ПолученныйМассив = ПараметрыПеретаскивания.Значение;
Если ТипЗнч(ПолученныйМассив) = Тип("Массив") Тогда
Для Каждого Значение Из ПолученныйМассив Цикл
НоваяСтрока = ДокументОбъект.Товары.Добавить();
НоваяСтрока.Номенклатура = Значение;
НоваяСтрока.Количество = 1;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Как вывести остатки на складах в списке номенклатуры?
Процедура СписокНоменклатураПриПолученииДанных(Элемент, ОформленияСтрок)
Запрос = Новый Запрос("ВЫБРАТЬ
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
| ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Товар
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки( , Номенклатура В (&МассивТоваров)) КАК ТоварыНаСкладахОстатки");
МассивНоменклатуры = Новый Массив; // для передачи в параметр запроса
Соответствие = Новый Соответствие; // для заполнения остатков в строках табличного поля
Для Каждого Строка из ОформленияСтрок Цикл
МассивНоменклатуры.Добавить(Строка.ДанныеСтроки.Ссылка);
Соответствие.Вставить(Строка.ДанныеСтроки.Ссылка, Строка);
КонецЦикла;
Запрос.УстановитьПараметр("МассивТоваров", МассивНоменклатуры);
Выборка = Запрос.Выполнить().Выбрать();
// Вывести остаток в строку, найденную в соответствии по номенклатуре
// из запроса.
Пока Выборка.Следующий() Цикл
Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.Остаток.Значение = Выборка.Остаток;
КонецЦикла;
КонецПроцедуры