БП 3.0 дополнительные реквизиты В БП 3.0 завел дополнительный реквизит у справочника "Контрагенты", тип булево. Выставил "Истина" двум контрагентам, все сохраняется, где надо использую, все прекрасно работает. Но флажки регулярно слетают в "Ложь", уже несколько раз Когда это происходит, непонятно. Грешил на процесс установки обновлений, еще раз проверю, но вроде они не причем. Кто-нибудь сталкивался с такой фигней ? |
Конфигурация стандартная? |
0-USSR > Обмен с УТ ? |
Так "флажки слетают" (меняется значение) или [b]удаляется реквизит[/b]? |
0-USSR > И вообще, ты извращенец :) - "тип булево" довольно странен именно для дополнительного реквизита: его (реквизита) наличие само по себе является булевым значением: мёд или есть, или его уже/ещё нет. |
Слетает значение, проверил - не при обновлении (4)не понял в чем извращение. Мне надо выделить двух покупателей. Обмена с УТ нет. Конфигурация слегка подправленная, но справочник контрагентов на замке и изменения никак его не касаются |
5-USSR > Слетает, значит... Наиболее вероятно - при записи. Возможно, косяк БСП: не различаются состояния "Ложь" и "Отсутствие реквизита". Жалуйся разработчикам. "Извращение" в том, что ты хочешь ввести переключатель "Да-Нет", а фактически получается "Да-Нет-ХЗ". Избегай неопределеностей. |
(6)Так никто не открывает карточки этих контрагентов и не записывает. Я не понял все-так про "да,нет,хз" В чем неопределенность и как добавить реквизит правильно ? Мне нужен флажок, чтобы выделить нескольких контрагентов из остальных. Ну, например, [X]Особенный |
7-USSR > Ну так и введи строковый реквизит. И пиши в нем "Х". "Особенный", "Любимый", ... И этот реквизит будет иметь какое-то значение. Даже если нет записи (NULL). Но тебе придется самому это как-то обрабатывать. Не создавай неопределенности. Вводи строку. И настучи юзерам в тыковку правило: "Ввод пустой строки удаляет реквизит". |
0-USSR > ну так посмотри по ЖР как изменяется контрагент. Ведь дополнительный реквизит храниться в ТЧ объекта. |
9-Uho > Не хранится реквизиты "в ТЧ объекта". Там могут хранятся ссылки. А могут и не хранятся. В отличии от реквизита "классической" ТЧ: сразу считывается вся запись со всеми полями, при записи записываются все поля, даже если их никто не формировал (вместо текста - пустая строка, булево - ЛОЖЬ, число - 0, и т.д.). Включишь в менеджер проверку на какие-то условия - получишь прерывание. Нет - значит нет. А вот значение дополнительного реквизита надо искать отдельно. Пошарить по Плану видов характеристик. По регистру сведений потом. И в сабжевом случае получим что-то булево. Одно и двух. Если есть этот дополнительный реквизит. А что мы получим, если этого (сабжевого) реквизита нет? Вопрос. Собственно, что задумано в данном случае: поставить булеву пометку в знак того, что-то находится в голове пользователя. Или на промакашке написано. Или ничего, ибо у пользователя склероз, а промакашку уборщица выкинула. Подозреваю, что подобная "потребность" не пришла в голову разработчикам ;) |
Длрлднительный реквизит достается через ПланВидовХарактеристик, есть даже функция в общих модулях, которая для объекта возвращает массив дополнительных реквизитов, потом нужный еще нужно искать. А у меня слетает зряче, в форме контрагента. А флажок этот не просто пометка, а нужен ) Я конечно могу переделать на "Общий реквизит", я точнее уже сделал, но вот общий реквизит спрятан, его не видно без доработки формы элемента справочника. Хотелось типовым механизмом. И он работает, и все получается, пока флажок не слетит ) Но кто-то тли что-то же его сбрасывает ) (10)Когда я "тащу" значение реквизита, то там и определяется третья ситуация, это либо массив пустой, либо в нем нет реквизита с нужным именем. А если он есть, то уже Истина/ложь. С этим то проблем не было |
Функция СвойствоДополнительногоРеквизита(ИмяРеквизита,НазвСправочника) Экспорт //VZ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Свойство.Ссылка, | Свойство.Наименование, | Свойство.ТипЗначения, | Свойство.Заголовок |ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойство |ГДЕ | НЕ Свойство.ПометкаУдаления | И НЕ Свойство.ЭтоДополнительноеСведение |"; НачатьТранзакцию(); Попытка Выборка = Запрос.Выполнить().Выбрать(); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; СвойствоСсылка = Неопределено; Пока Выборка.Следующий() Цикл СвойствоНаименование = ВРЕГ(Выборка.Наименование); Если Найти(СвойствоНаименование,Врег(ИмяРеквизита))<>0 И Найти(СвойствоНаименование,Врег("("+НазвСправочника+")"))<>0 Тогда Возврат Выборка.Ссылка КонецЕсли; КонецЦикла; Возврат СвойствоСсылка КонецФункции |
УправлениеСвойствами.ПолучитьЗначенияСвойств(ТребОбъект, Истина, Ложь); |
а зачем выборка в транзакцию обернута ? |
14-USSR > Мне не жмет в данном случае ;) 13-USSR > Угу. Хорошо, коль знаешь. А мне искать надо было в этих макаронах под названием Общие модули. Как, по словосочетанию "ДополнительныеРеквизитыИСведения"? Нехилый списочек вылез... Плюнул ;) |
+(15) Тут (в БСП-ном модуле) еще результат надо распаковывать, а меня интересовал конкретный идентификатор. |
(15)Искать в общих модулях, которых сотни, и под сотню "не использовать" становится уже уделом избранных ) Так все таки промышленные продукты не делаются ) Но меня сейчас конкретный случай интересует, я конечно еще понаблюдаю |
17-USSR > Ну почему "не использовать" ;) Я использовал структуру, уже имеющейся после открытии формы объекта. И эта структура была получена штатными средствами именно [em]УправлениеСвойствами.ПолучитьЗначенияСвойств[/em] Причем доп.реквизит принадлежал не основному объекту, а объекту ТЧ. Работает... А тебе советую не бодаться с БСП, а просто ввести ДР "Маркер" типа строка длиной в 1 символ. |
Не пойму я все-таки, чем строковый ДР лучше булевого ) |
19-USSR > Всего два состояния: либо символ, либо Неопределено |
10-VZ > [b]значение[/b] реквизита хранится в ТЧ объекта, а у USSR слетает именно значение. |
(20) + (10) + Допреквизиты вместе со своими значениями "живут" в ТЧ объекта. Так что в ЖР |
Да, живут они в ТЧ "ДополнительныеРеквизиты", попробую что-нибудь выловить, но как то странно это все, c программой работает бух и ему нафиг не надо это менять, она и знать не знает про реквизит |
Посмотрел жо по одному элементу. Вопреки моему убеждению, он регулярно менялся бухом и редко мной (я восстанавливал флажок). Включу хранение изменений у справочника и посмотрю, может что и выловлю. Сам для пробы поменял пару раз, при установке в "ложь" ДР удаляется из ТЧ. Но важно понять что с ним бух делает и зачем. Вот засада ) |
Разгадка как всегда проста и банальна. Ведь спрашивал же меня умный человек - "Есть обмен с УТ 10.3"? И я ведь ответил - нет, и ведь правда - нет, не соврал. Но ведь есть обмен ТИС -> БП 3.0,который сам писал ...и при импорте чистятся табличные части справочников, где и сидит на жердочке мой флажок и ждерт очередного уничтожения. Всем приношу извинения за беспокойство и свою тупость. |
Текущее время: 16:37. Часовой пояс GMT +3. |