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

Автоматическое заполнение реквизитов

Автор acelysX, 14 июл 2023, 08:21

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

acelysX

Есть документ залога, в нем при заполнении основных средств нужно автоматически подставлять счет учета и инвентарный номер,
Инв.номер он подставляет, и формирует автоматически, но если его изменить в документе, будет ставиться предыдущий
Счет учета берет не знаю откуда.
Что сделать, чтобы он ставил нужный номер и нужный счет учета? :trhregerhg:  :trhregerhg:
БП 3.0

&НаСервереБезКонтекста
Функция РеквизитыОС(Знач ОсновноеСредство)

Результат = Новый Структура;
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОсновноеСредство, "Код, ЕдиницаУчета");
Результат.Вставить("ЕдиницаУчета", Реквизиты.ЕдиницаУчета);
Результат.Вставить("ИнвентарныйНомер", Реквизиты.Код);
Возврат Результат;

КонецФункции

&НаКлиенте
Процедура ТМЦТМЦПриИзменении(Элемент)
ЭлементКоллекции = Элементы.ТМЦ.ТекущиеДанные;

Если ЗначениеЗаполнено(ЭлементКоллекции.ОсновноеСредство) Тогда
РеквизитыОС = РеквизитыОС(ЭлементКоллекции.ОсновноеСредство);
ЗаполнитьЗначенияСвойств(ЭлементКоллекции, РеквизитыОС);
КонецЕсли;

ПараметрыЗаполненияСчетовУчета = ПоступлениеТоваровУслугФормыКлиентСервер.НачатьЗаполнениеСчетовУчета(
"ОсновныеСредства.ОсновноеСредство",
Объект,
ЭлементКоллекции);

СчетаУчетаВДокументахКлиент.ЗаполнитьПриИзменении(ПараметрыЗаполненияСчетовУчета);
КонецПроцедуры

Максим75

Результат.Вставить("ИнвентарныйНомер", Реквизиты.Код);  - здесь инвентарный номер ставится.
если Вы меняете в документе, то Вы меняете на форме, надо смотреть, что залетает в РеквизитыОС, элемент формы или реквизит документа (это разные вещи, реквизит меняется только при записи документа, т.е. визуально на форме при изменении Вы видите одно, а базе еще может быть другое, пока не записали).

что касается бух.счета - где-то здесь
надо искать ПараметрыЗаполненияСчетовУчета = ПоступлениеТоваровУслугФормыКлиентСервер.НачатьЗаполнениеСчетовУчета(
        "ОсновныеСредства.ОсновноеСредство",
        Объект,
        ЭлементКоллекции);

Перейти в процедуру общего модуля и скорее всего там через запрос к конкретному объекту что-то ищется.

Теги:

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

Рейтинг@Mail.ru

Поиск