Запись в регистр сведений

1. DesertPunk 13.01.23 18:51 Сейчас в теме
(1) Добрый вечер! Столкнулся с тупой проблемой в самописной конфе: не отрабатывает запись в регистр сведений:

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

Показать


Код, естественно, не конечный и будет дорабатываться. Пока запускаю на минималках. Прошу помочь советом.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. lmnlmn 69 13.01.23 23:45 Сейчас в теме
(1)
Прошу помочь советом.
Мой совет. В пустой, либо тестовой базе создайте регистр сведений с парой измерений и поработайте с регистром через набор записей реализовав варианты записи с отбором и без, а также Записать(Истина) и Записать(Ложь) до полного просветления в этом вопросе.
8. Nubsdale 14.01.23 13:33 Сейчас в теме
(1)
НаборЗаписей
А запрос отрабатывает нормально?
9. DesertPunk 15.01.23 13:25 Сейчас в теме
(8)Запрос отрабатывает нормально, строка РС собирается нормально, но запись не происходит
19. glek 120 16.01.23 11:02 Сейчас в теме
(1) Единственно не понимаю сакрального смысла запроса: если всегда будет один пользователь и один документ, то зачем это всё городить? Не проще ли было бы
Запись = Регистрысведений...СоздатьМенеджерзаписи
Запись.Документ = Ссылка
Запись.Исполнитель = Какой-то пользователь
Запись.Записать(ИСТИНА);
2. Alex_E 2374 13.01.23 19:20 Сейчас в теме
1. Смотрите в отладчике, что выдает запрос
2. Чтоб что-то сказать, про работает/неработает нужно видеть структуру регистра, а точнее его измерения и необходимость их заполнения (из кода можно вангонуть, что измерение у регистра одно - "Документ", вот его заполненность и нужно проверить в выборке)
3. пользователь 13.01.23 19:36
Сообщение было скрыто модератором.
...
4. пользователь 13.01.23 19:55
Сообщение было скрыто модератором.
...
10. DesertPunk 15.01.23 13:29 Сейчас в теме
(4) Каким образом в запросе может приходить несколько документов при отборе ЭтотОбъект.Ссылка? Ты вообще понимешь какой ты спросил бред?
5. user1863362 13.01.23 21:20 Сейчас в теме
(4)
Таки какая ошибка
Тебе ж написали - "не отрабатывает". Самый умный что-ли, самоутверждаешься тут... и так далее по списку =)
user1881120; +1 Ответить
6. пользователь 13.01.23 22:47
Сообщение было скрыто модератором.
...
11. Fatenm 16.01.23 09:17 Сейчас в теме
а то, что не указан способ и связи соединения таблиц в запросе это нормально?))))
12. SlavaKron 16.01.23 09:31 Сейчас в теме
(11) Нормально, это декартово произведение таблиц:
Каждая строка одной таблицы соединяется с каждой строкой второй таблицы, давая тем самым в результате все возможные сочетания строк двух таблиц.
13. Fatenm 16.01.23 09:42 Сейчас в теме
(12) ну, то есть полное соединение?
14. SlavaKron 16.01.23 09:56 Сейчас в теме
(13) Нет, например, есть 2 таблицы с единственной колонкой Поле1:
Таблица 1:
a
b
c

Таблица 2:
b
c
e

Результат полного соединения по Поле1:
a NULL
b b
c c
NULL e

Результат декартова произведения:
a b
a c
a e
b b
b c
b e
c b
c c
c e
15. Fatenm 16.01.23 10:12 Сейчас в теме
(14) о, спасибо, буду знать
16. spacecraft 16.01.23 10:41 Сейчас в теме
(14)
Результат полного соединения по Поле1:
a NULL
b b
c c
NULL e

Это если прописывать условия связи полей.
Если же соединять по Истина, то получится все то же декартово произведение.
17. spacecraft 16.01.23 10:46 Сейчас в теме
(13) это полное соединение с условием связи Истина:
ИЗ Таб1	ПОЛНОЕ СОЕДИНЕНИЕ Таб2 ПО ИСТИНА
18. SlavaKron 16.01.23 10:59 Сейчас в теме
(17) С тем же успехом его можно назвать и левым и правым, потому что результат не изменится от типа соединения.
20. spacecraft 16.01.23 11:06 Сейчас в теме
(18) можно. Просто было сравнение с полным.
На самом деле это внутреннее соединение без условий связи. Но можно использовать любой тип соединения.
21. user1050439 7 23.08.23 07:59 Сейчас в теме
Вопрос так и не решили? У меня похожая проблема: в независимом, непериодическом регистре сведений одно измерение -- отбор производится по уиду с типом число, есть еще несколько реквизитов. Пробовал и через менеджер записи и через набор записей, и ставил записывать истина и замещать и не замещать -- всё перепробовал, но не записывает. Транзакция проходит успешно, но запись не отрабатывает. В чем может быть проблема? Платформа 8.3.21.1644

Решено: Забыл "ЗафиксироватьТранзакцию()"
Оставьте свое сообщение

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