Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Почему из модуля объекта нельзя вызвать команду записи элемента метаданных текущего объекта 2 страниц V  < 1 2          
Vidocq05 Подменю пользователя
сообщение 07.12.18, 16:13
Сообщение #21

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Цитата(Gigi @ 07.12.18, 16:03) *
Короче ничего не пойму....

Что не понятного. Вы нажимаете "Записать", срабатывает Ваш код в "ПередЗаписью". В нем просходит попытка записи объекта справочника, при этом опять срабатывает Ваш код в "ПередЗаписью" в котором опять происходит попытка записи объекта справочника и так до бесконечности.

Спасибо сказали: Gigi,

awp Подменю пользователя
сообщение 07.12.18, 16:16
Сообщение #22

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 520
Спасибо сказали: 70 раз
Рейтинг: 51.3

Если Не Выгрузка.Ссылка=ОбъектСсылка и Выгрузка.Связь1=ПрежняяСсылка Тогда
Добавте сюда проверку на НЕ пустую ссылку


Signature
Бухгалтер - это не профессия! Это диагноз!

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 07.12.18, 16:23
Сообщение #23

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Цитата(awp @ 07.12.18, 16:16) *
Что не понятного. Вы нажимаете "Записать", срабатывает Ваш код в "ПередЗаписью". В нем просходит попытка записи объекта справочника, при этом опять срабатывает Ваш код в "ПередЗаписью" в котором опять происходит попытка записи объекта справочника и так до бесконечности.

Вообще я думал над этим .. была такая мысль ... просто думал может что то другое.
Ладно ... тогда скажу что нужно для задачи.
Нужно что бы ссылка была уникальная. Т.е. что бы перед записью она автоматический стиралась любом другом месте списка.
Что бы указанная ссылка была всегда дна единственная в списке и не один другой элемент списка в том же самом реквизите ссылки что бы не дублировал ее.
И что бы все это срабатывало не в модуле формы а в модуле объекта.
Ладно ... если перед записью уходит в не нужное русло то тогда в каком событии решить задачу?
Цитата(awp @ 07.12.18, 16:16) *
Добавте сюда проверку на НЕ пустую ссылку

Попробую ..

awp Подменю пользователя
сообщение 07.12.18, 16:41
Сообщение #24

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 520
Спасибо сказали: 70 раз
Рейтинг: 51.3

Цитата(Gigi @ 07.12.18, 16:23) *
Вообще я думал над этим .. была такая мысль ... просто думал может что то другое.
Ладно ... тогда скажу что нужно для задачи.
Нужно что бы ссылка была уникальная. Т.е. что бы перед записью она автоматический стиралась любом другом месте списка.
Что бы указанная ссылка была всегда дна единственная в списке и не один другой элемент списка в том же самом реквизите ссылки что бы не дублировал ее.
И что бы все это срабатывало не в модуле формы а в модуле объекта.
Ладно ... если перед записью уходит в не нужное русло то тогда в каком событии решить задачу?


Через регистр сведений ?


Signature
Бухгалтер - это не профессия! Это диагноз!

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 07.12.18, 17:24
Сообщение #25

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Цитата(awp @ 07.12.18, 16:41) *
Через регистр сведений ?

Да делал я это уже ... через регистр сведений ... и работает нормально... и скину вариант в след. раз. ...
Просто есть малые нюансы .. поэтому через запрос надежнее.
И я думаю вернусь к теме опять .... завтра или через пару дней. Но думаю лучше не в этой теме, а создать другую.
А пока ... гуууу... просто устал уже ... блин.
Опять целый день в пустую ... и вопрос не решен!
Ладно! Всем большое спасибо!
Я ценю любую поддержку в проблемах. И если где то не так выразился не обессудьте.
Еще раз всем спасибо!
Пока!

TrasserZero Подменю пользователя
сообщение 07.12.18, 18:33
Сообщение #26

Общительный
**
Группа: Пользователи
Сообщений: 38
Спасибо сказали: 3 раз
Рейтинг: 0

Была подобная задачка - надо чтобы в документе-основании хранилась ссылка на подчиненный документ и наоборот- в подчиненном заполнялся реквизит ДокументОснование. Делал в ПослеЗаписи - всё работало. Правда цикла не было..


Signature

Gigi Подменю пользователя
сообщение 10.12.18, 10:17
Сообщение #27

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Опять всем привет!
Я понял, в чем была причина сбоя…. дошло на конец. Вот действительно какая глупость… как сам не догнал а … вернее догнал но мельком … и в том и дело что была такая мысль в голове … пару раз мелькнула… так что догнал но не до конца.
Короче все правильно… цикл уходит в вечность… так и есть .. естественно … ведь событие перед записью это уже и есть запись. А если в это событие поместить команду записи и тем более еще с ЦЫКЛОМ то система просто охреневает от этой дури и понять не может что за чушь .. и конечно резко вырубается. Так что среда разработки тут не причем. Напрасно я усомнился.
Да уж прямо …вынужден признать … нашелся «умник» … над созданием этой среды разработки работали супер грамотные и первоклассные профессионалы и они «допустили» бы баг? Тем более такой примитивный? Нет, это очень мало вероятно. Так что, каюсь … каюсь…
И в самом начале темы просто меня не до конца поняли, а то думаю тут же сказали бы причину.
И самое смешное еще это то, что в начале темы говорил еще о логике … надо же … рассуждал…. разглагольствовал … и при этом совсем не заметил, что сам вопрос темы алогичный…. «цирк». ))))
Помещать в событие перед записью команду записи, да еще и с циклом.. надо же … как это «логично». Это просто грубейшая ошибка )))) и самое смешное что именно логическая. )))) Простить себе не могу …. такую чушь.
Вот что бывает, когда слишком много задач ставится за один раз. Которыми голова просто забита … И настолько, что просто идет кругом… и уже даже в простых вещах с трудом соображаешь.

А по поводу решения поставленной задачи, и вопроса о том, если путем события перед записью не правильно то, как ее решить? Дело в том, что как сам убедился, разработчики об этом уже позаботились. И в самом деле… что это я прицепился к событию перед записью. Ведь платформа предлагает еще и другие события. На пример такие как «ОбработкаПроверкиЗаполнения».
Поэтому уже теперь все выглядит так:

Перем РеквСсылкаЗначПрежнее,РеквСсылкаЗначТекущее;
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
ЗначениеПеременных();
//Сообщить("Прежняя ссылка: "+РеквСсылкаЗначПрежнее+Символы.ПС+"Текущая ссылка: "+РеквСсылкаЗначТекущее);
//=======================================
    Если РеквСсылкаЗначПрежнее=РеквСсылкаЗначТекущее Тогда Возврат КонецЕсли; //Это условие для того что бы лишний раз не запускать запрос проверки. А только тогда когда это нужно.
    ТекСпр_РеквСсылкиЗначДубля_Очистить(ЭтотОбъект.Ссылка,РеквСсылкаЗначПрежнее,РеквСсылкаЗначТекущее);
//=======================================
СпрСвязи_РеквСсылкиЗначДубля_ОчиститьПрисвоить(ЭтотОбъект.Ссылка,РеквСсылкаЗначПрежнее,РеквСсылкаЗначТекущее);
КонецПроцедуры

Процедура ТекСпр_РеквСсылкиЗначДубля_Очистить(ОбъектСсылка,РеквСсылкаЗначПрежнее,РеквСсылкаЗначТекущее)
//Если ОбъектСсылка.Ссылка.Пустая() Тогда Возврат КонецЕсли;
//=======================================
Запроса = Новый Запрос(
        "ВЫБРАТЬ
        |Ссылка,
        |СсылкаСвязи    
        |ИЗ
        |Справочник.УникальнаяСвязь1_Серв КАК УникальнаяСвязь1_Серв");
//=======================================
Выгрузка = Запроса.Выполнить().Выбрать();
//=======================================
Количество=0;
Пока Выгрузка.Следующий() Цикл
//---------------------------------------
Если  Не Выгрузка.Ссылка=ОбъектСсылка и
      Не Выгрузка.Ссылка.СсылкаСвязи.Пустая() и
      ((РеквСсылкаЗначПрежнее.Пустая()=Ложь и Выгрузка.СсылкаСвязи=РеквСсылкаЗначПрежнее) или
      (РеквСсылкаЗначТекущее.Пустая()=Ложь и Выгрузка.СсылкаСвязи=РеквСсылкаЗначТекущее))Тогда
ЗнСсылкиДубля=Выгрузка.Ссылка;    
ОбъектЗаписи = ЗнСсылкиДубля.ПолучитьОбъект();
ОбъектЗаписи.СпособЗадачи=0;
ОбъектЗаписи.СсылкаСвязи="";
ОбъектЗаписи.Записать();    
КонецЕсли;
//---------------------------------------
КонецЦикла;
//=======================================
КонецПроцедуры

Процедура СпрСвязи_РеквСсылкиЗначДубля_ОчиститьПрисвоить(ОбъектСсылка,РеквСсылкаЗначПрежнее,РеквСсылкаЗначТекущее)
//Сообщить(Строка(ОбъектСсылка)+" - "+Строка(РеквСсылкаЗначПрежнее)+" - "+РеквСсылкаЗначТекущее);
Если РеквСсылкаЗначПрежнее<>Неопределено Тогда
Если РеквСсылкаЗначПрежнее.Пустая()=Ложь Тогда
ОбъектЗаписи = РеквСсылкаЗначПрежнее.ПолучитьОбъект();
ОбъектЗаписи.СсылкаСвязи="";
ОбъектЗаписи.Записать();        
КонецЕсли;
КонецЕсли;
Если РеквСсылкаЗначТекущее<>Неопределено Тогда
Если РеквСсылкаЗначТекущее.Пустая()=Ложь Тогда
ОбъектЗаписи = РеквСсылкаЗначТекущее.ПолучитьОбъект();
ОбъектЗаписи.СсылкаСвязи=ОбъектСсылка;
ОбъектЗаписи.Записать();        
КонецЕсли;
КонецЕсли;
КонецПроцедуры


Поэтому вместо того, что бы болтать о логике, нужно было посмотреть. И на самом деле через это событие задача решается … правда только если объект сохранен.
[необходимо зарегистрироваться для просмотра ссылки]
И задачу решил… вроде бы нормально работает в итоги. Сам проверял. Правда пришлось написать процедуры и функции.
И тут не в обиду… ибо опять не могу без критики, которая вполне логична…
И пять и тут становиться уместным повторить то, что часто говорил до этого.
Всем хорошая платформа.. .. удобная функциональная, но просто нуждается в доработке. То, что есть событие: «ОбработкаПроверкиЗаполнения» это хорошо, но было бы еще круче если та задача, которую решил и суть которой будет понятна в экземпляре, если ее можно было решить совсем просто…имею ввиду ОПЦИОНАЛЬНО .. а не процедурно. Ну сами подумайте … ведь все таки пришлось писать функции .. процедуры…. целые строки… А все это не нужно было бы делать, если в платформе была бы такая опция как на пример уникальное значение реквизита. Ну на пример у любого реквизита была бы такая галочка. Отметив которую этот реквизит приобретал бы свойства реквизита измерения. А еще лучше, если бы работал бы, так как сделано в экземпляре. Вот что было бы совсем круто. Это существенно решение тй задачи которая представлена в экземпляре. Просто назначил галочкой любой реквизит и все дела. Без этого гемма с функциями и процедурами которые нужно самому писать.
Ведь важно не только то, что удобно пользователю, но еще и то, что удобно саму программисту. Т.е. что бы не только пользователю, но и программисту было легче работать.
Вот собственно и все.
Опять много букв, но просто решил поделиться. Так что опять не обессудьте.
Ладно! Всем еще раз спасибо!
Пока!

Vladal Подменю пользователя
сообщение 13.12.18, 8:49
Сообщение #28

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(Gigi @ 07.12.18, 12:14) *
Ну что уважаемые? ... нашел я баг в "идеальной" среде разработки?

как-то неуважительно... затрагиваете моё религиозное чувство благоговения перед этим недокалькулятором "одноэс"...

Gigi Подменю пользователя
сообщение 13.12.18, 10:17
Сообщение #29

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Цитата(Vladal @ 13.12.18, 8:49) *
как-то неуважительно... затрагиваете моё религиозное чувство благоговения перед этим недокалькулятором "одноэс"...


Согласен согласен ... каюсь
Но с другой стороны это слишком серьезное восприятие ... Я просто пошутил ... smile.gifsmile.gif ... ну извините. Выразился так ради прикола.
И вообще почему я остановился на этом сайте... потому что тут люди без комплексов.... я же говорил про сайт ...самый терпеливый smile.gif )))) Даааа ...smile.gif И тут думаю к подобным шуткам относиться нормально. Без комплексов smile.gifsmile.gif
А так то, что "ОдноЭс" сделана капитально и грамотными профессионалами кто в этом сомневается. Так что, это не у "ОдноЭс" тогда был баг, а у меня в голове... от перегрева мозгов кучей разных задач. А иначе думаю и не могло быть.
Так что, разработчики думаю вообще внесли колоссальный вклад в развитие технологий ... и думаю еще больший чем на пример Касперский и т.д.
Ладно! Это так ... для ликвидации не до понимания.

Еще раз всем спасибо!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V  < 1 2
Ответить Новая тема
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 20:49
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!