Создал для документа дополнительный реквизит, тип "Булево". В обработчике "Перед Обработкой" правила регистрации документа вставил такой код
КодСвойства = "001"; Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду(КодСвойства); Фильтр = новый Структура("Объект,Свойство",Источник.Ссылка,Свойство); ЗначениеНеВыгружать = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Фильтр); Если ЗначениеНеВыгружать = Истина Тогда Отказ = Истина; КонецЕсли;
В итоге независимо от значения дополнительного реквизита документы не регистрируются для обмена. Подскажите что не так в коде. При этом для проверки я просто вставил практически такой же код (Источник.Ссылка-->ЭтотОбъект.Ссылка) в модуль формы документа с выводом сообщения в котором показывается значение доп. реквизита - все работает нормально.
Откройте синтаксис помощник, и посмотрите, что возвращает Получить() у Регистрасведений. Думаю, откроете для себя что-то новое
p.s. и про отладчик почитайте
Программированием 1С я начал интересоваться только недавно. Меня друг попросил на одной фирме помочь ему с этим. Что такое отладчик - я знаю, но я не знаю как пользоваться отладчиком для правил регистрации. Синтаксис помощник я смотрел, но по Региструсведений ничего интересного для себя не нашел, может не там искал. Знаете, не хочу здесь описывать свои проблемы и нехватку времени на изучение всего сразу, но хочу сказать вот что: если это форум для обсуждения и помощи, то хотелось бы получить именно ПОМОЩЬ. Я не зашел сюда и не сказал "Дайте мне готовый код". Я потратил кучу времени что бы разобраться, перегуглил кучу информации и не смог своими силами разобраться. Да, я знаю, что лезть туда, перед чем нужно выучить более простые вещи - это не совсем правильно, но я согласился помочь и не хочу отступать. Потому, если у вас есть что сказать по делу - так напишите по делу. А показать какой вы умный, а кто-то глупый - это дело не сложное, хотя в уровне ваших знаний я не сомневаюсь.
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2540 раз
Рейтинг: 0
Цитата(Hunterok @ 17.02.14, 10:52)
а кто-то глупый
Я не пытаюсь показывать, что кто-то глупый, если я кого-то отправляю, что-то почитать, то преследую лишь одну цель - научить человека получать информацию там где она есть сразу и под рукой, а не тратить время на писанину на форумах, и ожидание ответов. Другое дело если кто-то не понимает того, что там написано, это можно разъяснить, но когда человек пишет - искал искал, ничего не нашел, это уже вызывает подозрение - "а искал ли", я же не знаю наверняка, я лишь действую по предположениям. Вы же каким-то образом поняли, что надо написать "Получить()"? И если бы почитали синтаксис-помощник по этому методу:
Цитата
Возвращаемое значение: Тип: Структура. Структура, содержащая значения ресурсов.
Что такое тип Структура и Тип Булево думаю объяснять не надо. У вас идет сравнение не совместимых типов, поскольку структура не Истина, то в условии всегда будет Ложь.
Личные бесплатные консультации не даю, для этого есть форум!
Что такое тип Структура и Тип Булево думаю объяснять не надо. У вас идет сравнение не совместимых типов, поскольку структура не Истина, то в условии всегда будет Ложь.
Спасибо за более конструктивный ответ. Я просматривал куски кода на разных форумах и таким вот методом сложил этот. Но почему данный код нормально работает в модуле формы документа Приходный кассовый ордер? Для проверки, в процедуру я добавил вот такой код:
Процедура ПриОткрытии() КодСвойства = "001"; СвойствоВыгружать = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду(КодСвойства); Фильтр = новый Структура("Объект,Свойство",ЭтотОбъект.Ссылка,СвойствоВыгружать); Результат = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Фильтр); Сообщить(Результат.Значение);
В итоге при открытии документа, в котором на доп реквизите стоит галочка, я получаю сообщение "Да", на котором не стоит, соответственно, ничего не получаю.
Vofka, Все равно не работает. Мне кажется, что кроме возможных прочих ошибок проблема может быть в Источник.Ссылка. Я не уверен, что это правильная ссылка для получения значения из РегистраСведений.
Живет на форуме
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0
Цитата(Hunterok @ 17.02.14, 11:43)
на котором не стоит, соответственно, ничего не получаю.
Потому что автоматом запись в базе не создаётся. Она создаётся если мы вносим значение Истина\Ложь. Соответственно будет 3 варианта - истина, ложь, нет записи.
Я тут подумал - подозреваю что регистрация нового объекта будет происходить всегда. Так как новый объект будет записываться до того как появится запись в регистре сведений. (Но нужно проверять)
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2540 раз
Рейтинг: 0
Цитата(Hunterok @ 17.02.14, 12:11)
Все-таки правильно Объект.Ссылка а не Источник.Ссылка
это зависит от того, где вызывается код.
// В порядке занудства, не люблю когда много текста //Если Результат.Значение = Истина Тогда // Отказ = Истина; //КонецЕсли; Отказ = Результат.Значение;
Личные бесплатные консультации не даю, для этого есть форум!
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14061
Из: Киев
Спасибо сказали: 4626 раз
Рейтинг: 3765.1
Цитата(logist @ 17.02.14, 12:55)
// В порядке занудства, не люблю когда много текста //Если Результат.Значение = Истина Тогда // Отказ = Истина; //КонецЕсли; Отказ = Результат.Значение;
Потенциально опасный код, который может вываливаться с ошибкой. См. пост 8.
И я в порядке занудства добавлю, что лицензии на буквы в алфавите - предоставляются бесплатно .
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!