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

Копирование информации из одной колонки в другую при изменении флажка. Как сделать?

Автор unclebob, 18 окт 2017, 09:47

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

unclebob

Всем привет. Только учусь с 1с и столкнулся с такой задачей. Имеем в документе количество которое заполняется при сканировании товара, рядом колонку контроль которую заполняем вручную. При заполнении в колонке "контроль" дублирую в ручную колонку "количество". Когда колонки "количество" и "контроль" одинаковые, строки документа становятся зелёные. Хочется сделать что бы автоматически заполнялась колонка "контроль" автоматически при переключении флажка. Я добавил флажок, но как связать что бы при изменения флажка колона "количество" заполнялась из колонки "количество" не могу сделать. Вкратце нужно чтобы при изменении флажка информация из одной колонки копировалась в другую колонку. Может кто поможет советом. Заранее спасибо.

Golickoff

У флажка создайте процедуру ПриИзменении. В ней пропишите что-то вроде
ТД = ЭлементыФормы.ИмяТаблицы.ТекущиеДанные;
ТД.Контроль = ТД.Количество;
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

dv.garkin

Форма управляемая или обычная?
А так да, Элементы. или ЭлементыФормы. для не управляемой формы.

unclebob

Цитата: Golickoff от 18 окт 2017, 10:27
У флажка создайте процедуру ПриИзменении. В ней пропишите что-то вроде
ТД = ЭлементыФормы.ИмяТаблицы.ТекущиеДанные;
ТД.Контроль = ТД.Количество;

Спасибо.Всё работает. А как применить ко всему документу? Так как при изменении меняет только текущую строку.

dv.garkin

Если надо изменить всю табличную часть, то обойди их в цикле
Для Каждого Строка Из Объект.ТаблицаТвоя Цикл

Или для не управляемых форм просто ТаблицаТвоя

unclebob

Цитата: dv.garkin от 18 окт 2017, 12:09сли надо изменить всю табличную часть, то обойди их в цикл

Цитата: dv.garkin от 18 окт 2017, 12:09
Если надо изменить всю табличную часть, то обойди их в цикле
Для Каждого Строка Из Объект.ТаблицаТвоя Цикл

Или для не управляемых форм просто ТаблицаТвоя
У меня обычная форма. Получился вот такой код
Процедура АвтКонтрольПриИзменении(Элемент)
ТД = ЭлементыФормы.Товары.ТекущиеДанные;
Для Каждого Строка Из ЭлементыФормы.Товары.ТекущиеДанные
   Цикл ТД.КоличествоКонтроль = ТД.Количество;
КонецЦикла;
   
   КонецПроцедуры
Но всё равно только одну строку копирует. Не пойму я же записал что цикл

dv.garkin

У тебя каша получилась.
Что тебе надо сделать, конкретно?

Если ты хочешь при изменении какого-то реквизита формы данные из него прогнать по всем строкам табличной части тогда


Процедура АвтКонтрольПриИзменении(Элемент)
    Для Каждого Строка Из Товары Цикл
       Строка.КоличествоКонтроль = Количество; //Где Количество - это твой реквизит, откуда надо взять данные
    КонецЦикла;
КонецПроцедуры


Или если ты хочешь чтобы у тебя каждая строка получала свое количество из другой колонки


Процедура АвтКонтрольПриИзменении(Элемент)
    Для Каждого Строка Из Товары Цикл
       Строка.КоличествоКонтроль = Строка.Количество;
    КонецЦикла;
КонецПроцедуры

unclebob

Цитата: dv.garkin от 18 окт 2017, 13:09
У тебя каша получилась.
Что тебе надо сделать, конкретно?

Если ты хочешь при изменении какого-то реквизита формы данные из него прогнать по всем строкам табличной части тогда


Процедура АвтКонтрольПриИзменении(Элемент)
    Для Каждого Строка Из Товары Цикл
       Строка.КоличествоКонтроль = Количество; //Где Количество - это твой реквизит, откуда надо взять данные
    КонецЦикла;
КонецПроцедуры


Или если ты хочешь чтобы у тебя каждая строка получала свое количество из другой колонки


Процедура АвтКонтрольПриИзменении(Элемент)
    Для Каждого Строка Из Товары Цикл
       Строка.КоличествоКонтроль = Строка.Количество;
    КонецЦикла;
КонецПроцедуры


Спасибо

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск