Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

ХранилищеЗначения, скопировать при копировании элемента справочника

ХранилищеЗначения, скопировать при копировании элемента справочника
Я
   егаис
 
11.07.18 - 07:20
УАТ 2.1 Справочник Тарифов. Есть реквизит справочника с типом ХранилищеЗначения.
Как при копировании элемента справочника скопировать в новый элемент хранилищезначения?
 
 
   Cyberhawk
 
1 - 11.07.18 - 07:27
Получаешь значение из хранилища, помещаешь в новое хранилище
   Cyberhawk
 
2 - 11.07.18 - 07:27
А чтоб экономить место, заведи справочник "ХранилищаЗначений", где и храни свои значения
   Cyberhawk
 
3 - 11.07.18 - 07:27
А в объектах реквизит-ХЗ замени на ссылку на этот справочник
   егаис
 
4 - 11.07.18 - 07:30
(2) там на справочник не тянет, хранятся отборы области действия тарифа. Попробую, спасибо.
Еще ламерский вопрос - а как сейчас определяется в присозданиинасервере что элемент скопирован?
   Cyberhawk
 
5 - 11.07.18 - 07:33
(4) Только в обработчике ПриКопировании модуля объекта помещать в реквизит объекта какой-нибудь маркер (например, текст в комментарий)
   егаис
 
6 - 11.07.18 - 07:35
(5) спасиб
   егаис
 
7 - 11.07.18 - 07:41
может я неправ, но это не сработало
Процедура ПриКопировании(ОбъектКопирования)
    
    Если Не ЭтоГруппа Тогда
        ТекОбластьДействия = ОбъектКопирования.ОбластьДействия.Получить();
        ОбластьДействия = Новый ХранилищеЗначения(ТекОбластьДействия);
    КонецЕсли;
    
КонецПроцедуры
   Chameleon1980
 
8 - 11.07.18 - 07:52
(7) как определил?
   Chameleon1980
 
9 - 11.07.18 - 07:52
+ что в отладчике-то?
   егаис
 
10 - 11.07.18 - 07:53
(8) открывается форма с пустым отбором
 
 Рекламное место пустует
   егаис
 
11 - 11.07.18 - 07:56
в ХЗ хранится НастройкиКомпоновкиДанных
   егаис
 
12 - 11.07.18 - 08:12
пробежался по элементам настрокикомпоновки, нигде привязки к владельцу/родителю нет
В чем может быть причина?
   егаис
 
13 - 11.07.18 - 08:13
сверил данные ОбластьДействия.Получить() обработкой по существующему элементу, отличий не вижу
   Chameleon1980
 
14 - 11.07.18 - 08:23
да ты погодь с отборами-то

ты тут скажи что
ТекОбластьДействия = ОбъектКопирования.ОбластьДействия.Получить();

ТекОбластьДействия? для начала

далее это уже другой вопрос.
у тебя тема-то какая изначально?
   Остап Сулейманович
 
15 - 11.07.18 - 08:24
(0) Православно все выполнить в ОбработкаЗаполнения. Для примера :

//Если это новый

Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
  //Если вводится копированием

  Если ТипЗнч(ДанныеЗаполнения) = ... Тогда
    //Положить ХЗ в переменную формы.

    //на случай если нужно будет новый объект записыывать

    ...
  КонецЕсли;
КонецЕсли;

Как-то так.
   егаис
 
16 - 11.07.18 - 08:30
(15) ОбработкаЗаполнения при копировании разве работает?
(14) ТекОбластьДействия  = НастройкиКомпоновкиДанных
   Остап Сулейманович
 
17 - 11.07.18 - 08:30
(16) А проверить?
   Остап Сулейманович
 
18 - 11.07.18 - 08:32
+ (17) Поработаю ДенисЧ. Из моего СП :
"
Описание:

Возникает при вводе элемента справочника на основании, а также при выполнении метода Заполнить, а также при интерактивном вводе нового. В процедуре-обработчике этого события должен быть описан сам алгоритм заполнения реквизитов элемента справочника на основании переданного значения.
"
   егаис
 
19 - 11.07.18 - 08:32
(17) не работает
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
    Если ДанныеЗаполнения<>Неопределено Тогда
        ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
    КонецЕсли;
КонецПроцедуры
   егаис
 
20 - 11.07.18 - 08:33
(18) про копировании ни слова
   Остап Сулейманович
 
21 - 11.07.18 - 08:37
(19) Точно.
"Примечание:

При копировании (как интерактивном, так и средствами встроенного языка), данный обработчик не вызывается. "
   Остап Сулейманович
 
22 - 11.07.18 - 08:37
+ (21) Птля... Но я же делал заполнение при копировании.
   Остап Сулейманович
 
23 - 11.07.18 - 08:41
+ (22) 
В модуле формы в ПриСознанииНаСервере оно лежит в Параметры.ЗначениеКопирования.

Предварительно проверить вводится ли новый.
   егаис
 
24 - 11.07.18 - 08:44
(23) да, это понятно.
в ПриКопировании я аналогично получаю значение ХЗ.
Какого фига ОбластьДействия = Новый ХранилищеЗначения(ТекОбластьДействия) пишет пустое значение
   егаис
 
25 - 11.07.18 - 08:45
в ТекОбластьДействия   отборы я вижу в настройкекомпоновки
а после ОбластьДействия = Новый ХранилищеЗначения(ТекОбластьДействия) пусто
   FIXXXL
 
26 - 11.07.18 - 09:17
(25) а ОбластьДействия.Получить()?
   егаис
 
27 - 11.07.18 - 09:27
(26)
Процедура ПриКопировании(ОбъектКопирования)
    
    Если Не ЭтоГруппа Тогда
        ТекОбластьДействия = ОбъектКопирования.ОбластьДействия.Получить();
        ОбластьДействия = Новый ХранилищеЗначения(ТекОбластьДействия);
    КонецЕсли;
    
КонецПроцедуры
   егаис
 
28 - 11.07.18 - 13:26
подниму, может подтянулись знатоки.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует