Изменение реквизит справочника при проведении документа в 1С
От: tiamatinc  
Дата: 27.05.06 11:08
Оценка:
Подскажите, пожалуйста каким образом можно выполнить данное действие, пытаюсь написать вот так

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


Вроде всё работает, но последняя строка словно не выполняется , типы реквизитов совпадают.
Re: Изменение реквизит справочника при проведении документа
От: dreamZ  
Дата: 29.05.06 05:01
Оценка:
Думаю,вы не поставили галочку в реквизите справочника "Изменяется документами"... и еще,в док. существует функция УстановитьРеквизитСправочника(<ЭлементСправочника>,<НазваниеРеквизита>,<Значение>,<ДатаУстановки>,<ИмяТипа>,<Длина>,<Точность>)
может она вам больше поможет
Re: Изменение реквизит справочника при проведении документа
От: dreamZ  
Дата: 29.05.06 05:05
Оценка:
Здравствуйте, tiamatinc, Вы писали:

T>Подскажите, пожалуйста каким образом можно выполнить данное действие, пытаюсь написать вот так


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


T>Вроде всё работает, но последняя строка словно не выполняется , типы реквизитов совпадают.


Думаю, у вас не стоит галочка в реквизите справочника "изменяеться документами"... так же есть фун. в док. УстановитьРеквизитСправочника(<ЭлементСправочника>,<НазваниеРеквизита>,<Значение>,<ДатаУстановки>,<ИмяТипа>,<Длина>,<Точность>)
может она вам поможет...
Re: Изменение реквизит справочника при проведении документа
От: OLEGus1 Россия  
Дата: 29.05.06 05:49
Оценка:
Здравствуйте, tiamatinc, Вы писали:

T>Подскажите, пожалуйста каким образом можно выполнить данное действие, пытаюсь написать вот так


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


T>Вроде всё работает, но последняя строка словно не выполняется , типы реквизитов совпадают.


А что за переменная "Клиент"?
Crescite, nos qui vivimus, multiplicamini
Re: Изменение реквизит справочника при проведении документа
От: Red Bird Россия  
Дата: 29.05.06 06:35
Оценка:
Здравствуйте, tiamatinc, Вы писали:
[skip]
T>Вроде всё работает, но последняя строка словно не выполняется , типы реквизитов совпадают.

Все проще!
1. Если реквизит "Клиент" непериодический, то нужно применить метод Записать:
Процедура ОбработкаПроведения()
    СпрКаталог  = СоздатьОбъект("Справочник.Подмена");
    СпрКаталог.НайтиЭлемент(Тело);
    СпрКаталог.УстановитьАтрибут("Клиент",Клиент);    
    СпрКаталог.Записать();
КонецПроцедуры


2. Если реквизит периодический, то тогда:
Процедура ОбработкаПроведения()
    УстановитьРеквизитСправочника(Тело,"Клиент",Клиент, ДатаДок);
КонецПроцедуры


P.S. 1-й вариант очень плохое решение, т.к. не рекомендуется изменять реквизит справочника при проведении документа
(возможно появление больших проблем /у пользователя/ при эексплуатации конфингурации).
Re[2]: Изменение реквизит справочника при проведении докумен
От: tiamatinc  
Дата: 29.05.06 11:27
Оценка:
Здравствуйте, Red Bird, Вы писали:

RB>P.S. 1-й вариант очень плохое решение, т.к. не рекомендуется изменять реквизит справочника при проведении документа

RB> (возможно появление больших проблем /у пользователя/ при эексплуатации конфингурации).

Большое спасибо, помогло . А по поводу плохого решения, то оно так и было задумано
Re[3]: Изменение реквизит справочника при проведении докумен
От: Red Bird Россия  
Дата: 29.05.06 12:07
Оценка:
Здравствуйте, tiamatinc, Вы писали:

T>Здравствуйте, Red Bird, Вы писали:


RB>>P.S. 1-й вариант очень плохое решение, т.к. не рекомендуется изменять реквизит справочника при проведении документа

RB>> (возможно появление больших проблем /у пользователя/ при эексплуатации конфингурации).

T>Большое спасибо, помогло . А по поводу плохого решения, то оно так и было задумано


Тогда вы должны продумать, что будет когда пользователь сделает отмену проведения:
Процедура ОбработкаУдаленияПроведения()
    //Вернуть ИБ в состояние до проведния документа    
КонецПроцедуры
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.