8.х Дополнительные реквизиты

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем xaysnet, 29 авг 2019.

  1. TopicStarter Overlay
    xaysnet
    Offline

    xaysnet Опытный в 1С

    Регистрация:
    3 июн 2019
    Сообщения:
    133
    Симпатии:
    3
    Баллы:
    29
    При копировании номенклатуры, надо сделать чтобы доп.реквизит "старая цена" не учитывалась. тость его значения принимало 0. И не могу понять как это сделать.
    Пробовал через объект.
    Код:
    Поле=Объект.ДополнительныеРеквизиты.Выгрузить();
    Поле[2].Значение=0;
    Объект.ДополнительныеРеквизиты.Загрузить(Поле);
    
    Честно, не понимаю зачем нужны дополнительные реквизиты....
  2. TopicStarter Overlay
    xaysnet
    Offline

    xaysnet Опытный в 1С

    Регистрация:
    3 июн 2019
    Сообщения:
    133
    Симпатии:
    3
    Баллы:
    29
    Может кто подсобит? Я не могу не как решить проблему. Когда пользователь заходить в номенклатуру (в клиенте), выбирает товар, и нажимает копировать. Создается новый документ, и все рекизиты, включая дополнительные, копируются. И теперь вопрос, как изменить дополнительные реквизиты программным способом.
    Объект не возможно получить, так как он не записан, записывать его тоже нельзя(ибо пользователь может не захотеть на каком то этапе его записывать).
    Напрямую я не могу обратится к доп ревизиту.
  3. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.155
    Симпатии:
    217
    Баллы:
    104
    Дополнительные реквизиты хранятся в одноименной табличной части.
    В событии "ПриКопировании" модуля объекта (лучше расширением или подпиской на событие) нужно найти в табличной части строку со значением реквизита и удалить ее.
  4. TopicStarter Overlay
    xaysnet
    Offline

    xaysnet Опытный в 1С

    Регистрация:
    3 июн 2019
    Сообщения:
    133
    Симпатии:
    3
    Баллы:
    29
    Делал, в объект.дополнительныереквизиты оно меняется, а на самой форме и при записи. Значения старое!
    А события при копировании нету, как в модуле объекта, так и в модуле форм (где сама кнопка копирования, и там где номенклатура заполнятся)
  5. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.155
    Симпатии:
    217
    Баллы:
    104
    Событие есть в модуле объекта. Сама процедура может быть не создана - тогда можно создать.
    upload_2019-9-1_21-26-47.png

    (но, как и говорил, лучше подпиской или расширением, чтобы типовую конфигурацию не "портить")
  6. TopicStarter Overlay
    xaysnet
    Offline

    xaysnet Опытный в 1С

    Регистрация:
    3 июн 2019
    Сообщения:
    133
    Симпатии:
    3
    Баллы:
    29
    В крации, любые другие реквизиты меняются кроме допреквизита...
    Последнее редактирование: 2 сен 2019
  7. TopicStarter Overlay
    xaysnet
    Offline

    xaysnet Опытный в 1С

    Регистрация:
    3 июн 2019
    Сообщения:
    133
    Симпатии:
    3
    Баллы:
    29
    Вопрос решен.
    В модуле объекта создал процедура

    Процедура ЗаказПокупателяПриКопировании(ОбъектКопирования)
    ДопРеквизита = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Старая цена");
    ДопРеквизита2 = ЭтотОбъект.ДополнительныеРеквизиты.Найти(ДопРеквизита);
    ЭтотОбъект.ДополнительныеРеквизиты.Удалить(ДопРеквизита2);
    КонецПроцедуры

    Если надо удалить, или переименовать реквизит

    Процедура ЗаказПокупателяПриКопировании(ОбъектКопирования);
    ЭтотОбъект.НАЗВАНИЕ ВАШЕГО РЕКВИЗИТА.удалить();
    КонецПроцедуры