Обновление данных при создании новых документов

1. zhenek1980 14.02.20 12:45 Сейчас в теме
Доброго времени суток, такая проблема:

Есть документ изменяющий реквизиты справочника с регистрацией в регистре сведений

в форму подтягиваются данные из справочника
так же в форму вводятся новые данные реквизитов
Документ сохраняется, проводится новые данные записываются в справочник и регистр сведений, тут все работает хорошо

а вот если создать сразу еще один документ на изменение той же позиции справочника в него подтянутся устаревшие данные которые были до изменений первым документом. При этом данные в справочнике изменились согласно первому документу

Если перезапустить базу этого глюка нет, как будто при открытии второго документа данные подтягиваются не из справочника а из кеша или чего то подобного.

Вопрос как сделать так что бы при открытии второго документа данные подтягивались те что в справочнике, а не устаревшие
По теме из базы знаний
Найденные решения
9. zhenek1980 14.02.20 16:17 Сейчас в теме
В общем проблему я решил, точнее реализовал по другому: функцию "НайтиПоРеквизиту" заменил запросом на выборку.
Всем спасибо!
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. starjevschik 14.02.20 12:53 Сейчас в теме
Скорее проблема в процедуре "подтягивания". Что-то она не то "подтягивает". Или не в тот момент.
3. zhenek1980 14.02.20 13:04 Сейчас в теме
(2) "подтягивание" идет по нажатию кнопки в форме, или "ПриИзменении" поля ввода в этой же форме, функцией "Справочники.Номенклатура.НайтиПоРеквизиту"
4. markw 14.02.20 13:08 Сейчас в теме
А можно чуть больше кода? Ничего не понятно.
5. zhenek1980 14.02.20 13:18 Сейчас в теме
на форме вводится ИнвНомер в поле ввода "Объект.ИнвНомер" после нажатия кнопки запускается процедура: "Поиск"

&НаКлиенте
Процедура Поиск(Команда)
	Объект.ТМЦ = СервернаяСреда.ИнвН_Проверка(Объект.ИнвНомер);
КонецПроцедуры


Объект.ТМЦ это реквизит типа СправочникСсылка.Номенклатура


СервернаяСреда.ИнвН_Проверка ищет в справочнике запись по реквизиту:

Функция  ИнвН_Проверка (ИнвН) Экспорт

ПИН= Справочники.Номенклатура.НайтиПоРеквизиту("ИнвНомер",ИнвН);
          
Если ПИН= Справочники.Номенклатура.ПустаяСсылка() тогда ПИН=NULL
	КонецЕсли;
Возврат ПИН;


дальше в форму выводятся данные: с реквизита объекта (просто перетянул мышкой нужные реквизиты на форму в конструкторе)

Объект.ТМЦ.Наименование
Объект.ТМЦ.Сотрудник
....
6. zhenek1980 14.02.20 13:40 Сейчас в теме
попробую еще объяснить в картинках:
1 картинка
Красным выделено старое название
1) создаем новое название
сохраняем и проводим документ
2) данные внесены в справочник что видим в изменившимся списке
Закрываем документ

2 картинка
открываем новый документ
3) находим туже запись в справочнике
4) видим что изменение в прошлом документе отработали нормально
5) НО данные которые подтягиваются остались старыми
Прикрепленные файлы:
7. starjevschik 14.02.20 13:50 Сейчас в теме
я думаю, что где-то в алгоритмах ошибка, но понять по приведенным отрывкам это невозможно. Что-то не туда записывается, или не оттуда читается, или читается не то, что должно читаться (например, дублируются элементы справочника с тем же реквизитом), или еще что. Кэши и прочие фокусы платформы вряд ли имеют здесь значение. А вот качество кода, как видно, не самое выдающееся.
ИнвН_Проверка() - это функция, которая находит элемент справочника! Почем же она ИнвН_Проверка, а не НайтиЭлементПоИнвентарномуНомеру()? ПИН - это ссылка на номенклатуру. Почему ПИН?? Если там все так написано, то неудивительно, что ошибку так сразу не разглядишь...
8. zhenek1980 14.02.20 13:57 Сейчас в теме
(7) тут тяжело спорить, код в читаемый вид приведу
ИнвН_Проверка, так называется т.к это функция в основном используется для проверки на уникальность ИнвН в справочнике
ПИН переменная внутри этой функции сокращение от ПроверкаИнвНомера

ps согласен что отмазка слабая
9. zhenek1980 14.02.20 16:17 Сейчас в теме
В общем проблему я решил, точнее реализовал по другому: функцию "НайтиПоРеквизиту" заменил запросом на выборку.
Всем спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот