Привет!
В 1С Бух 3 сделал расширение "Акция", в карточке номенклатуры добавил реквизит "Акционный товар" (тип булево), в док "Установка цен" вывел в табличную часть столбец "Акционный товар". Сотрудник открывает карточку номенклатуры, ставит галку "Акционный товар" и в док. "Установка цен" при подборе товара в табличной части видит акционный товар или нет (для контроля). Надоело им открывать каждую номенклатуру, чтоб ставить галку, и говорят: сделай кнопку, чтоб сразу весь товар, который находится в документе стал акционным, т.е. проставить галку в каждой номенклатуре и чтоб в столбце "Акционный товар" в документе тоже отобразилась галка.
Итог: всё почти работает, но при нажатии на кнопку не обновляется форма документа, т.е. в доке галки нет, а в карточке номенклатуры - есть.
Подскажите как победить, чтоб в доке галка тоже появлялась?
Код установки галки:
В 1С Бух 3 сделал расширение "Акция", в карточке номенклатуры добавил реквизит "Акционный товар" (тип булево), в док "Установка цен" вывел в табличную часть столбец "Акционный товар". Сотрудник открывает карточку номенклатуры, ставит галку "Акционный товар" и в док. "Установка цен" при подборе товара в табличной части видит акционный товар или нет (для контроля). Надоело им открывать каждую номенклатуру, чтоб ставить галку, и говорят: сделай кнопку, чтоб сразу весь товар, который находится в документе стал акционным, т.е. проставить галку в каждой номенклатуре и чтоб в столбце "Акционный товар" в документе тоже отобразилась галка.
Итог: всё почти работает, но при нажатии на кнопку не обновляется форма документа, т.е. в доке галки нет, а в карточке номенклатуры - есть.
Подскажите как победить, чтоб в доке галка тоже появлялась?
Код установки галки:
ТЧ_Товары = Объект.Товары;
Для каждого СтрокаТЧ Из ТЧ_Товары Цикл
Товар = СтрокаТЧ.Номенклатура;
мТовар = Товар.ПолучитьОбъект();
мТовар.АкционныйТовар = Истина;
мТовар.Записать();
КонецЦикла; ПоказатьПо теме из базы знаний
- Авторегистрация обработок заполнения табличных частей и внешних печатных форм в информационной базе + Видео-пример использования шаблона - создание внешней печатной формы самостоятельно + Универсальный отчет СКД (набор отчетов в одном с группировками уров
- Проведение документа будущей датой для КА, УПП, УТ, УТ 11, КА 2, ЕРП 2 (неоперативное проведение) из формы самого документа.
- Товарный чек с логотипом организации (поддержка старых релизов начиная с УТ 11.1.2, где нет такой возможности) для документа Реализация товаров и услуг (РТУ) без использования ККТ. Редакции с 11.1.2 по 11.2
- Внешние печатные формы с комиссией для БП 3: ОС-1, ОС-3, ОС-4, ОС-14, МБ-8, Мх-18, М-4, Акт на списание, Спецификация, ОСВ - с выбором параметров - УФ
- Внешние печатные формы для Альфа-Авто 5.1 СТО АВТОВАЗ LADA
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
19.
spacecraft
29.05.26 11:14
Сейчас в теме
(13) тут просто разница терминологий. Не в табличную часть, а в элементы выведен реквизит номенклатуры из табличной части. С данными этого элемента не возможно работать программно. Оно только для отображения.
Заметил вот что: после прохождение кода, галки в номенклатуре проставляются тут всё ОК ну и как описано выше в доке - нет, но если зайти в карточку номенклатуры и нажать "Провести и закрыть", потом эту номенклатуру перевыбрать в доке, тогда галка проставляется в столбце.
20.
RoyFincher
4
29.05.26 13:21
Сейчас в теме
&НаКлиенте
Процедура УстановитьПризнакАкционный(Команда)
// твой код изменения признака
УстановитьПризнакНаСервере();
// Обновляем значения в табличной части
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
СтрокаТЧ.АкционныйТовар = ПолучитьПризнакАкционный(СтрокаТЧ.Номенклатура);
КонецЦикла;
// Принудительно обновляем отображение
Элементы.Товары.Обновить();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьПризнакАкционный(Номенклатура)
Возврат Номенклатура.АкционныйТовар;
КонецФункции
Показать
(22) Когда пользователь интерактивно что-то изменяет в справочнике и нажимает кнопку записать, программа это видит и показывает сразу.
А когда программно что-то изменяется, программа это не видит.
Вот бы был какой-нибудь метод, чтобы оповестить программу об изменении этих объектов.
Конечно жаль, что ничего такого не придумали.
А когда программно что-то изменяется, программа это не видит.
Вот бы был какой-нибудь метод, чтобы оповестить программу об изменении этих объектов.
Конечно жаль, что ничего такого не придумали.
24.
spacecraft
29.05.26 16:23
Сейчас в теме
в продолжении (2):
можно на клиенте, по окончании изменения всей номенклатуры в ТЧ, вызвать ОповеститьОбИзменении(Тип("СправочникСсылка.Номенклатура"));
можно на клиенте, по окончании изменения всей номенклатуры в ТЧ, вызвать ОповеститьОбИзменении(Тип("СправочникСсылка.Номенклатура"));
29.
spacecraft
29.05.26 17:36
Сейчас в теме
(25) ну почему же?
Есть еще первый вариант с ОповеститьОбИзменении, обходить таблицу на клиенте и для каждой номенклатуры вызывать оповещение )
Есть еще первый вариант с ОповеститьОбИзменении, обходить таблицу на клиенте и для каждой номенклатуры вызывать оповещение )
27.
RoyFincher
4
29.05.26 17:25
Сейчас в теме
(24) Работает, но в описании указано что - Уведомляет динамические списки на клиенте об изменении множества объектов или множества записей регистра. Почему сработало с табличной частью?
28.
spacecraft
29.05.26 17:30
Сейчас в теме
(27) это не совсем ТЧ.
И далее в СП:
И далее в СП:
Также осуществляется очистка закэшированных данных на клиенте. В частности, очищается кэш представлений ссылок, кэш данных через точку, кэш данных быстрого выбора, кэш ограничений по типу, кэш форм выбора. Удаляется только та информация, которая стала недействительной.
похоже кокда записываю программно
Товар = СтрокаТЧ.Номенклатура;
мТовар = Товар.ПолучитьОбъект();
мТовар.АкционныйТовар = Истина;
мТовар.Записать();
как-то запись чтоль криво происходит, хотя карточку номенклатуры открываю галка есть.
Но стоит открыть номенклатуру и нажать записать, то и в доке нужная глака сразу появляется.
Товар = СтрокаТЧ.Номенклатура;
мТовар = Товар.ПолучитьОбъект();
мТовар.АкционныйТовар = Истина;
мТовар.Записать();
как-то запись чтоль криво происходит, хотя карточку номенклатуры открываю галка есть.
Но стоит открыть номенклатуру и нажать записать, то и в доке нужная глака сразу появляется.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот