Страница 1 из 1

Опять про внешние атрибуты.

Добавлено: 14 ноя 2013, 14:52
Den_Is
Ситуация такая, добавил внешний атрибут на калалог материалов. Значение внешнего атрибута выбираются из пользовательской аналитики.
Заполнил атрибуты программно, а имено вот так (по простому сразу в таблицы):
//Кусок исходника
clearbuffer(#attrval);
set attrval.wtable:=1411;
set attrval.cattrnam:=comp(4612121930033478648); //нрек внешнего атрибута
set attrval.crec:=katMc.nrec; // но собственно нрек материала
set attrval.vstring:=st; // в переменную st прописал значение из katkau.name
set ATTRVAL.vcomp:=CKau; // нрек из katkau
insert current attrval;
...
Открываю интерфейс каталога материало, смотрю в значение внешнего атрибута, пусто.
Открываю саппорт, смотрю таблицы - есть значения, sql-м выгружаю данные - есть.
Захожу в интерфейс каталога материалов, делаю - InitServTxo(0), значения отображаются. Закрываю Гал-ку, удаляю dsk - картина повторяется, пока не пнешь инитсерв.
Подскажите как лечить, не делать же у каждого пользователя инитсерв ? Может что не так делаю?
з/ы Гал-ка 7,12

Re: Опять про внешние атрибуты.

Добавлено: 14 ноя 2013, 18:09
edward_K
Тут вопрос - а как вы их выводите? Если б конфигуратором - внешние атрибуты - то наверное проблем нет, а вот если как вычисляемое поле с использованием Txo функций - то да - надо делать InitServTxo (можно через IF добавить к выражению). Мало инфы, чтобы что то сказать. Если через программу заполняете в других местах нечто подобное, то выводится?

Re: Опять про внешние атрибуты.

Добавлено: 15 ноя 2013, 09:31
Den_Is
Ну так в том то и дело, выводиться (показываються) они должны при вызове по ALT-A (стандартный фейс внешних атрибутов), ни об каком конфигураторе речь не идет. Что бы было понятнее попробую описать ситуацию более конкретно.
1. Есть фейс каталога мц.
2. ALT-А внешние атрибуты, добавляю внешний атрибут, тип атрибуты ссылка на пользовательскую аналитику.
3. Теперь если пользователь хочет внести значения внешнего атрибуты, ему предоставляется на выбор только значения из пользовательской аналитики.
4. Юзер выбирает нужное значение пользовательской аналитики и оно записывается как значение внешнего атрибута (если делаем руками все работает).
5. Решил уменьшить объем ручной работу, и где это возможно часть значений атрибутов внести программно по определенным условиям.
6. Ну а что дальше описано в первом посте.

Такой проблемы нет, если программно заполняю атрибуты нессылочного типа (строковые, числовые).
Проблема возникает имено со ссылочными атрибутами, причем для любых объектов (не только для каталога материалов).

Re: Опять про внешние атрибуты.

Добавлено: 15 ноя 2013, 11:11
edward_K
То есть если руками вводить эти ссылочные отображаются? В штатном фейсе внешних атрибутов вроде не было такой проблемы. Ед. что после ввода самого типа атрибута нужно было перезайти. Создавали Attrnam то штатно или программно? Мож чего не заполнили. Ну и ATTRVAL.vcomp:=CKau = там должно быть spkau.nrec а не katkau. В общем практика такая. Сначала создаете руками - смотрите, потом чистите, создаете программно - сравниваете по журналу. При создании не забывайте проверить на наличие записи в AttrVal. Ну если не поможет, то вам не повезло и у вас патчи не той системы(мож и была такая проблема - я не помню). Тогда поможет конфигуратором вытянуть вычисляемое поле на фейс с InitServTxo(0). А. Еще зачем у вас set в каждой строке присваивания? Он в автомате приводит к вставке записи. Так что либо insert into table set список полей; либо set убирайте вовсе.

Re: Опять про внешние атрибуты.

Добавлено: 15 ноя 2013, 11:42
Den_Is
Если руками то отображаются.
Attrnam - вношу "штатно" руками.
Про ckau - немного ошибся в первом посте, конечно нрек спкау.
Вообщем так и делал как вы описали, сначала задавал руками, потом выгружал в dbf, чистил, заполнял программно, выгружал в dbf/ Сравниваю обе dbf-ки, все одинаково.
Про set - да можно и без него, сути дела не меняет.
С патчами у нас действительно проблема, не патчили уже о-о-очень давно, так что возможно и косяк системы.
Вообщем найду проблему отпишусь.