Имя: Пароль:
1C
 
Групповое изменение реквизита в выбранных документах
0 Vladislav2023
 
31.10.23
12:11
Доброго времени суток!

Конфигурация Бухгалтерия 3.0 (3.0.50.1), платформа 8.3.18.1959.

Прошу помочь с реализацией задачи:
Создан документ, в нём есть числовое поле(4 знака), куда вводит номер вручную бухгалтер(номер задаёт он сам). Как можно сделать так, чтобы при выделении из списка документов, при вводе в поле номера(Думаю так: добавлю на форму списка ещё одно поле для ввода и команду "ДобавитьНомер"), он автоматически проставлялся в  выбранные документы?

Т.е. добавляю на форму списка поле ввода для номера, выделяю документы, нажимаю "ДобавитьНомер" и в выделенные документы проставляется этот номер.

Я так понимаю выполняется аналогично групповому изменению реквизитов, но подскажите как это реализовать программно?
1 AAA
 
31.10.23
12:19
я бы написал для этого специальную внешнюю обработку. Заполнить, пометить нужные, выполнить.
2 Donkey_hot
 
31.10.23
12:21
(0) Элементы.Список.ВыделенныеСтроки
3 KJlag
 
31.10.23
12:25
(0) я уже вижу случайные нажатия по кнопке на форме
4 Donkey_hot
 
31.10.23
12:27
(3) Ну да, на такие действия лучше вешать дополнительный запрос подтверждения с указанием количества изменяемых документов.
5 Vladislav2023
 
31.10.23
13:51
Можете пожалуйста подсказать как написать код используя "Элементы.Список.ВыделенныеСтроки"?

Я совсем недавно начал изучать 1с, буду благодарен!

Может стоить создать произвольную форму, в ней поле для ввода номера и кнопку "Изменить"? Т.е. когда бухгалтер выделит документы, нажмёт кнопку "ДобавитьНомер", откроется эта форма.
6 Мимохожий Однако
 
31.10.23
14:31
(0) Один и тот же номер в несколько документов? Это разовая акция или на постоянной основе? Откуда столь древняя конфигурация? Платформа пиратка?
7 Vladislav2023
 
01.11.23
05:47
Номер является идентефикатором для целей самого бухгалтера. По сути больше никому в работе не нужен. Лицензия, не пиратка.

Вот такой пример хочу прикрутить:

&НаКлиенте
Процедура ИзменитьРеквизит(Команда)
  ТД = Элементы.Список.ТекущиеДанные;//сюда поставлю Элементы.Список.ВыделенныеСтроки
  Если ТД = Неопределено Тогда
      возврат;
   КонецЕсли;
   ИзменитьРеквизитНаСервере(Тд.Ссылка,"Вот такое вот наименование");//сюда поставлю реквизит, числовое поле, для ввода номера
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ИзменитьРеквизитНаСервере(Ссылка,ЗначениеРеквизита)
   Объект = Ссылка.ПолучитьОбъект();
   Объект.Наименование = ЗначениеРеквизита;
   Объект.Записать();
КонецПроцедуры
8 Donkey_hot
 
01.11.23
06:04
(7) Ну в целом правильно, в ВыделенныеСтроки у вас будет массив, передавайте его целиком на сервер, и там в цикле записывайте. С точки зрения юзабилити еще желательно показать промежуточный вопрос "Вы собираетесь указать номер для N документов. Продолжить?" Да/нет. И по результатам выполнения ПоказатьОповещениеПользователя, чтобы проинформировать об успешном завершении операции.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший