Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 06:41

Обычное приложение. добавление колонки в форму в ТЧ не связанной с колонкой ТЧ документа

Автор andron81_81, 09 фев 2018, 13:38

0 Пользователей и 1 гость просматривают эту тему.

andron81_81

Цитата: AIFrame от 12 фев 2018, 11:02
Цитата: andron81_81 от 12 фев 2018, 11:00в обычном приложении в отличии от УФ это делается при помощи костылей
Делается по другому. Потому что механизмы работы иные. А если хочется как в УФ - то да, при помощи костылей.

1. делаю отдельную произвольную форму с таб. частью не связанной ни с одной из таб. частей документа.
2. в ней делаю колонку галочку (как вы описывали)
3. заполняю таблицу данными из ТЧ документа .
4. при нажатии ок , обрабатываю галочки

все ли верно ?


AIFrame

1. Смотришь и вникаешь -
Пока не посмотришь, дальше не читай вообще.
2. Создаешь обработку. Добавляешь ПОМИМО СсылкиНаОбъект реквизит ТЧ, наполняешь нужными реквизитами, в том числе реквизитом, который будет "галочкой".
3. Создаешь в обработке форму. По Процедуре Инициализировать вызываешь открытие этой формы. Там же в Инициализировать ты заполняешь свою ТЧ данными из СсылкиНаОбъект.
4. Делаешь на форме кнопку, которая будет что-то делать по выставленным галочкам. Помни, у тебя есть СсылкаНаОбъект. И если ты делаешь Для Каждого СтрокаТовары из СсылкаНаОбъект.Товары Цикл - ты будешь менять данные в этом документе НЕПОСРЕДСТВЕННО.
5. Подключаешь свою обработку во внешних обработках заполнения ТЧ.

Уже разжевал как мог. Все.

andron81_81

Цитата: AIFrame от 12 фев 2018, 11:22
1. Смотришь и вникаешь -
Пока не посмотришь, дальше не читай вообще.
2. Создаешь обработку. Добавляешь ПОМИМО СсылкиНаОбъект реквизит ТЧ, наполняешь нужными реквизитами, в том числе реквизитом, который будет "галочкой".
3. Создаешь в обработке форму. По Процедуре Инициализировать вызываешь открытие этой формы. Там же в Инициализировать ты заполняешь свою ТЧ данными из СсылкиНаОбъект.
4. Делаешь на форме кнопку, которая будет что-то делать по выставленным галочкам. Помни, у тебя есть СсылкаНаОбъект. И если ты делаешь Для Каждого СтрокаТовары из СсылкаНаОбъект.Товары Цикл - ты будешь менять данные в этом документе НЕПОСРЕДСТВЕННО.
5. Подключаешь свою обработку во внешних обработках заполнения ТЧ.

Уже разжевал как мог. Все.

у меня по заполнению нет проблем. у меня была проблема в создании доп. колонок.

AIFrame


andron81_81

Цитата: AIFrame от 12 фев 2018, 11:51
Тебе уже 10 раз все объяснили.
Что еще не понятно?

ваш код работает и помог. Всё разобрался


AIFrame



andron81_81

Цитата: AIFrame от 12 фев 2018, 10:27
Модуль формы:
перем мСписок;

Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Ячейки = ОформлениеСтроки.Ячейки;
        ЯчейкаВыбрано = Ячейки.Выбрано;
        ЯчейкаР1 = Ячейки.Реквизит1;
        ЯчейкаНомер = Ячейки.НомерСтроки;
Выбрано = мСписок.НайтиПоЗначению(ЯчейкаНомер.Значение);
ЯчейкаВыбрано.ОтображатьФлажок = Истина;
ЯчейкаВыбрано.Значение = ?(Выбрано <> неопределено, Истина, Ложь);       
КонецЦикла;
КонецПроцедуры


Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Колонка.Имя = "Выбрано" Тогда
ТекущаяСтрока = ЭлементыФормы.Товары.ТекущиеДанные;
ЗначениеВСписке = мСписок.НайтиПоЗначению(ТекущаяСтрока.НомерСтроки);
Если ЗначениеВСписке <> неопределено Тогда
мСписок.Удалить(ЗначениеВСписке);
Иначе
мСписок.Добавить(ТекущаяСтрока.НомерСтроки);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

мСписок = Новый СписокЗначений;

Товары = табличная часть.
Реквизит1 = реквизит табличной части
Выбрано = колонка, нарисованная на форме, не реквизит ТЧ.

Из нюансов - придется также пилить обработчики на перемещение\удаление строк. Т.е. удалять из списка при удалении строки и менять значение номеров при перемещении строки.
Если в ТЧ будет уникальный реквизит (например, реквизит1 не может повторяться в ТЧ) то список можно сформировать по нему и тогда перемещение можно не обрабатывать, а только удаление строки (по желанию).

а можно ли начальные значения вбить ? у меня что-то не выходит.
просто даже если тупо все галочки поставлю в первом событии :

ЯчейкаВыбрано.Значение = Истина;


то есть я подумал , что
ЯчейкаВыбрано.Значение = ?(Выбрано <> неопределено, Истина, Ложь); 

это заливает нач. значения. а нет - если попытаться проставить все галочки(см. выше) , тогда не выходит


Похожие темы (5)

Рейтинг@Mail.ru

Поиск