0
- 14.04.2017 - 05:30
|
В БП 3.0 завел дополнительный реквизит у справочника "Контрагенты", тип булево. Выставил "Истина" двум контрагентам, все сохраняется, где надо использую, все прекрасно работает. Но флажки регулярно слетают в "Ложь", уже несколько раз Когда это происходит, непонятно. Грешил на процесс установки обновлений, еще раз проверю, но вроде они не причем. Кто-нибудь сталкивался с такой фигней ?
| |
1
- 14.04.2017 - 09:48
| Конфигурация стандартная? | |
2
- 14.04.2017 - 09:59
| 0-USSR > Обмен с УТ ? | |
3
- 14.04.2017 - 10:13
| Так "флажки слетают" (меняется значение) или удаляется реквизит? | |
4
- 14.04.2017 - 10:26
| 0-USSR > И вообще, ты извращенец :) - "тип булево" довольно странен именно для дополнительного реквизита: его (реквизита) наличие само по себе является булевым значением: мёд или есть, или его уже/ещё нет. | |
5
- 14.04.2017 - 11:04
|
Слетает значение, проверил - не при обновлении (4)не понял в чем извращение. Мне надо выделить двух покупателей. Обмена с УТ нет. Конфигурация слегка подправленная, но справочник контрагентов на замке и изменения никак его не касаются | |
6
- 14.04.2017 - 11:32
|
5-USSR > Слетает, значит... Наиболее вероятно - при записи. Возможно, косяк БСП: не различаются состояния "Ложь" и "Отсутствие реквизита". Жалуйся разработчикам. "Извращение" в том, что ты хочешь ввести переключатель "Да-Нет", а фактически получается "Да-Нет-ХЗ". Избегай неопределеностей. | |
7
- 14.04.2017 - 12:48
|
(6)Так никто не открывает карточки этих контрагентов и не записывает. Я не понял все-так про "да,нет,хз" В чем неопределенность и как добавить реквизит правильно ? Мне нужен флажок, чтобы выделить нескольких контрагентов из остальных. Ну, например, [X]Особенный | |
8
- 14.04.2017 - 13:29
|
7-USSR > Ну так и введи строковый реквизит. И пиши в нем "Х". "Особенный", "Любимый", ... И этот реквизит будет иметь какое-то значение. Даже если нет записи (NULL). Но тебе придется самому это как-то обрабатывать. Не создавай неопределенности. Вводи строку. И настучи юзерам в тыковку правило: "Ввод пустой строки удаляет реквизит". | |
9
- 14.04.2017 - 13:40
| 0-USSR > ну так посмотри по ЖР как изменяется контрагент. Ведь дополнительный реквизит храниться в ТЧ объекта. | |
10
- 14.04.2017 - 14:15
|
9-Uho > Не хранится реквизиты "в ТЧ объекта". Там могут хранятся ссылки. А могут и не хранятся. В отличии от реквизита "классической" ТЧ: сразу считывается вся запись со всеми полями, при записи записываются все поля, даже если их никто не формировал (вместо текста - пустая строка, булево - ЛОЖЬ, число - 0, и т.д.). Включишь в менеджер проверку на какие-то условия - получишь прерывание. Нет - значит нет. А вот значение дополнительного реквизита надо искать отдельно. Пошарить по Плану видов характеристик. По регистру сведений потом. И в сабжевом случае получим что-то булево. Одно и двух. Если есть этот дополнительный реквизит. А что мы получим, если этого (сабжевого) реквизита нет? Вопрос. Собственно, что задумано в данном случае: поставить булеву пометку в знак того, что-то находится в голове пользователя. Или на промакашке написано. Или ничего, ибо у пользователя склероз, а промакашку уборщица выкинула. Подозреваю, что подобная "потребность" не пришла в голову разработчикам ;) | |
11
- 14.04.2017 - 14:39
|
Длрлднительный реквизит достается через ПланВидовХарактеристик, есть даже функция в общих модулях, которая для объекта возвращает массив дополнительных реквизитов, потом нужный еще нужно искать. А у меня слетает зряче, в форме контрагента. А флажок этот не просто пометка, а нужен ) Я конечно могу переделать на "Общий реквизит", я точнее уже сделал, но вот общий реквизит спрятан, его не видно без доработки формы элемента справочника. Хотелось типовым механизмом. И он работает, и все получается, пока флажок не слетит ) Но кто-то тли что-то же его сбрасывает ) (10)Когда я "тащу" значение реквизита, то там и определяется третья ситуация, это либо массив пустой, либо в нем нет реквизита с нужным именем. А если он есть, то уже Истина/ложь. С этим то проблем не было | |
12
- 14.04.2017 - 14:47
|
Функция СвойствоДополнительногоРеквизита(ИмяРеквизита,Назв Справочника) Экспорт //VZ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Свойство.Ссылка, | Свойство.Наименование, | Свойство.ТипЗначения, | Свойство.Заголовок |ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСве дения КАК Свойство |ГДЕ | НЕ Свойство.ПометкаУдаления | И НЕ Свойство.ЭтоДополнительноеСведение |"; НачатьТранзакцию(); Попытка Выборка = Запрос.Выполнить().Выбрать(); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); ВызватьИсключение; КонецПопытки; СвойствоСсылка = Неопределено; Пока Выборка.Следующий() Цикл СвойствоНаименование = ВРЕГ(Выборка.Наименование); Если Найти(СвойствоНаименование,Врег(ИмяРеквизита))<>0 И Найти(СвойствоНаименование,Врег("("+НазвСправочник а+")"))<>0 Тогда Возврат Выборка.Ссылка КонецЕсли; КонецЦикла; Возврат СвойствоСсылка КонецФункции | |
13
- 14.04.2017 - 14:51
| УправлениеСвойствами.ПолучитьЗначенияСвойств(ТребО бъект, Истина, Ложь); | |
14
- 14.04.2017 - 14:52
| а зачем выборка в транзакцию обернута ? | |
15
- 14.04.2017 - 15:25
|
14-USSR > Мне не жмет в данном случае ;) 13-USSR > Угу. Хорошо, коль знаешь. А мне искать надо было в этих макаронах под названием Общие модули. Как, по словосочетанию "ДополнительныеРеквизитыИСведения"? Нехилый списочек вылез... Плюнул ;) | |
16
- 14.04.2017 - 15:43
| +(15) Тут (в БСП-ном модуле) еще результат надо распаковывать, а меня интересовал конкретный идентификатор. | |
17
- 14.04.2017 - 16:09
| (15)Искать в общих модулях, которых сотни, и под сотню "не использовать" становится уже уделом избранных ) Так все таки промышленные продукты не делаются ) Но меня сейчас конкретный случай интересует, я конечно еще понаблюдаю | |
18
- 14.04.2017 - 17:37
|
17-USSR > Ну почему "не использовать" ;) Я использовал структуру, уже имеющейся после открытии формы объекта. И эта структура была получена штатными средствами именно УправлениеСвойствами.ПолучитьЗначенияСвойств Причем доп.реквизит принадлежал не основному объекту, а объекту ТЧ. Работает... А тебе советую не бодаться с БСП, а просто ввести ДР "Маркер" типа строка длиной в 1 символ. | |
19
- 14.04.2017 - 18:16
| Не пойму я все-таки, чем строковый ДР лучше булевого ) | |
20
- 14.04.2017 - 18:22
| 19-USSR > Всего два состояния: либо символ, либо Неопределено | |
21
- 14.04.2017 - 18:49
| 10-VZ > значение реквизита хранится в ТЧ объекта, а у USSR слетает именно значение. | |
22
- 14.04.2017 - 19:02
|
(20) + (10) + Допреквизиты вместе со своими значениями "живут" в ТЧ объекта. Так что в ЖР Отредактировано roma n; 14.04.2017 в 19:03. Причина: пропуск | |
23
- 14.04.2017 - 19:16
| Да, живут они в ТЧ "ДополнительныеРеквизиты", попробую что-нибудь выловить, но как то странно это все, c программой работает бух и ему нафиг не надо это менять, она и знать не знает про реквизит | |
24
- 14.04.2017 - 19:45
| Посмотрел жо по одному элементу. Вопреки моему убеждению, он регулярно менялся бухом и редко мной (я восстанавливал флажок). Включу хранение изменений у справочника и посмотрю, может что и выловлю. Сам для пробы поменял пару раз, при установке в "ложь" ДР удаляется из ТЧ. Но важно понять что с ним бух делает и зачем. Вот засада ) | |
25
- 21.04.2017 - 16:04
| Разгадка как всегда проста и банальна. Ведь спрашивал же меня умный человек - "Есть обмен с УТ 10.3"? И я ведь ответил - нет, и ведь правда - нет, не соврал. Но ведь есть обмен ТИС -> БП 3.0,который сам писал ...и при импорте чистятся табличные части справочников, где и сидит на жердочке мой флажок и ждерт очередного уничтожения. Всем приношу извинения за беспокойство и свою тупость. | |
| Интернет-форум Краснодарского края и Краснодара |