Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   БП 3.0 дополнительные реквизиты (http://forums.kuban.ru/f1040/bp_3_0_dopolnitel-nye_rekvizity-8280812.html)

USSR 14.04.2017 05:30

БП 3.0 дополнительные реквизиты
 
В БП 3.0 завел дополнительный реквизит у справочника "Контрагенты", тип булево. Выставил "Истина" двум контрагентам, все сохраняется, где надо использую, все прекрасно работает. Но флажки регулярно слетают в "Ложь", уже несколько раз Когда это происходит, непонятно. Грешил на процесс установки обновлений, еще раз проверю, но вроде они не причем. Кто-нибудь сталкивался с такой фигней ?

Efreytor 14.04.2017 09:48

Конфигурация стандартная?

android 14.04.2017 09:59

0-USSR > Обмен с УТ ?

VZ 14.04.2017 10:13

Так "флажки слетают" (меняется значение) или [b]удаляется реквизит[/b]?

VZ 14.04.2017 10:26

0-USSR > И вообще, ты извращенец :) - "тип булево" довольно странен именно для дополнительного реквизита: его (реквизита) наличие само по себе является булевым значением: мёд или есть, или его уже/ещё нет.

USSR 14.04.2017 11:04

Слетает значение, проверил - не при обновлении
(4)не понял в чем извращение. Мне надо выделить двух покупателей.
Обмена с УТ нет. Конфигурация слегка подправленная, но справочник контрагентов на замке и изменения никак его не касаются

VZ 14.04.2017 11:32

5-USSR > Слетает, значит... Наиболее вероятно - при записи.
Возможно, косяк БСП: не различаются состояния "Ложь" и "Отсутствие реквизита". Жалуйся разработчикам.

"Извращение" в том, что ты хочешь ввести переключатель "Да-Нет", а фактически получается "Да-Нет-ХЗ".
Избегай неопределеностей.

USSR 14.04.2017 12:48

(6)Так никто не открывает карточки этих контрагентов и не записывает. Я не понял все-так про "да,нет,хз"
В чем неопределенность и как добавить реквизит правильно ? Мне нужен флажок, чтобы выделить нескольких контрагентов из остальных. Ну, например, [X]Особенный

VZ 14.04.2017 13:29

7-USSR > Ну так и введи строковый реквизит. И пиши в нем "Х". "Особенный", "Любимый", ...
И этот реквизит будет иметь какое-то значение. Даже если нет записи (NULL).
Но тебе придется самому это как-то обрабатывать.
Не создавай неопределенности. Вводи строку. И настучи юзерам в тыковку правило: "Ввод пустой строки удаляет реквизит".

Uho 14.04.2017 13:40

0-USSR > ну так посмотри по ЖР как изменяется контрагент. Ведь дополнительный реквизит храниться в ТЧ объекта.

VZ 14.04.2017 14:15

9-Uho > Не хранится реквизиты "в ТЧ объекта". Там могут хранятся ссылки. А могут и не хранятся.
В отличии от реквизита "классической" ТЧ: сразу считывается вся запись со всеми полями, при записи записываются все поля, даже если их никто не формировал (вместо текста - пустая строка, булево - ЛОЖЬ, число - 0, и т.д.). Включишь в менеджер проверку на какие-то условия - получишь прерывание. Нет - значит нет.
А вот значение дополнительного реквизита надо искать отдельно. Пошарить по Плану видов характеристик. По регистру сведений потом. И в сабжевом случае получим что-то булево. Одно и двух. Если есть этот дополнительный реквизит.
А что мы получим, если этого (сабжевого) реквизита нет?
Вопрос.
Собственно, что задумано в данном случае: поставить булеву пометку в знак того, что-то находится в голове пользователя. Или на промакашке написано. Или ничего, ибо у пользователя склероз, а промакашку уборщица выкинула.

Подозреваю, что подобная "потребность" не пришла в голову разработчикам ;)

USSR 14.04.2017 14:39

Длрлднительный реквизит достается через ПланВидовХарактеристик, есть даже функция в общих модулях, которая для объекта возвращает массив дополнительных реквизитов, потом нужный еще нужно искать. А у меня слетает зряче, в форме контрагента. А флажок этот не просто пометка, а нужен ) Я конечно могу переделать на "Общий реквизит", я точнее уже сделал, но вот общий реквизит спрятан, его не видно без доработки формы элемента справочника. Хотелось типовым механизмом. И он работает, и все получается, пока флажок не слетит ) Но кто-то тли что-то же его сбрасывает )
(10)Когда я "тащу" значение реквизита, то там и определяется третья ситуация, это либо массив пустой, либо в нем нет реквизита с нужным именем. А если он есть, то уже Истина/ложь. С этим то проблем не было

VZ 14.04.2017 14:47

Функция СвойствоДополнительногоРеквизита(ИмяРеквизита,НазвСправочника) Экспорт //VZ
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Свойство.Ссылка,
| Свойство.Наименование,
| Свойство.ТипЗначения,
| Свойство.Заголовок
|ИЗ
| ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК Свойство
|ГДЕ
| НЕ Свойство.ПометкаУдаления
| И НЕ Свойство.ЭтоДополнительноеСведение
|";

НачатьТранзакцию();
Попытка
Выборка = Запрос.Выполнить().Выбрать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
СвойствоСсылка = Неопределено;
Пока Выборка.Следующий() Цикл
СвойствоНаименование = ВРЕГ(Выборка.Наименование);
Если Найти(СвойствоНаименование,Врег(ИмяРеквизита))<>0 И Найти(СвойствоНаименование,Врег("("+НазвСправочника+")"))<>0 Тогда
Возврат Выборка.Ссылка
КонецЕсли;
КонецЦикла;
Возврат СвойствоСсылка
КонецФункции

USSR 14.04.2017 14:51

УправлениеСвойствами.ПолучитьЗначенияСвойств(ТребОбъект, Истина, Ложь);

USSR 14.04.2017 14:52

а зачем выборка в транзакцию обернута ?

VZ 14.04.2017 15:25

14-USSR > Мне не жмет в данном случае ;)
13-USSR > Угу. Хорошо, коль знаешь. А мне искать надо было в этих макаронах под названием Общие модули. Как, по словосочетанию "ДополнительныеРеквизитыИСведения"? Нехилый списочек вылез... Плюнул ;)

VZ 14.04.2017 15:43

+(15) Тут (в БСП-ном модуле) еще результат надо распаковывать, а меня интересовал конкретный идентификатор.

USSR 14.04.2017 16:09

(15)Искать в общих модулях, которых сотни, и под сотню "не использовать" становится уже уделом избранных ) Так все таки промышленные продукты не делаются ) Но меня сейчас конкретный случай интересует, я конечно еще понаблюдаю

VZ 14.04.2017 17:37

17-USSR > Ну почему "не использовать" ;) Я использовал структуру, уже имеющейся после открытии формы объекта. И эта структура была получена штатными средствами именно [em]УправлениеСвойствами.ПолучитьЗначенияСвойств[/em]
Причем доп.реквизит принадлежал не основному объекту, а объекту ТЧ. Работает...

А тебе советую не бодаться с БСП, а просто ввести ДР "Маркер" типа строка длиной в 1 символ.

USSR 14.04.2017 18:16

Не пойму я все-таки, чем строковый ДР лучше булевого )

VZ 14.04.2017 18:22

19-USSR > Всего два состояния: либо символ, либо Неопределено

Uho 14.04.2017 18:49

10-VZ > [b]значение[/b] реквизита хранится в ТЧ объекта, а у USSR слетает именно значение.

roma n 14.04.2017 19:02

(20) +
(10) +
Допреквизиты вместе со своими значениями "живут" в ТЧ объекта. Так что в ЖР

USSR 14.04.2017 19:16

Да, живут они в ТЧ "ДополнительныеРеквизиты", попробую что-нибудь выловить, но как то странно это все, c программой работает бух и ему нафиг не надо это менять, она и знать не знает про реквизит

USSR 14.04.2017 19:45

Посмотрел жо по одному элементу. Вопреки моему убеждению, он регулярно менялся бухом и редко мной (я восстанавливал флажок). Включу хранение изменений у справочника и посмотрю, может что и выловлю. Сам для пробы поменял пару раз, при установке в "ложь" ДР удаляется из ТЧ. Но важно понять что с ним бух делает и зачем. Вот засада )

USSR 21.04.2017 16:04

Разгадка как всегда проста и банальна. Ведь спрашивал же меня умный человек - "Есть обмен с УТ 10.3"? И я ведь ответил - нет, и ведь правда - нет, не соврал. Но ведь есть обмен ТИС -> БП 3.0,который сам писал ...и при импорте чистятся табличные части справочников, где и сидит на жердочке мой флажок и ждерт очередного уничтожения. Всем приношу извинения за беспокойство и свою тупость.


Текущее время: 16:37. Часовой пояс GMT +3.