УТ 10.3 Как создать регистр сведений, у которого в качестве измерения документ?
К документу "Заказ покупателя" нужно добавить некоторое количество (10-15) новых реквизитов. Чтобы не сильно перелопачивать конфигурацию, хотел создать новый регистр сведения, в который и записывать значения этих реквизитов.
Сделал такую процедуру в форме документа: Но после редактирования реквизитов регистра выдается сообщение "Запись с такими ключевыми полями существует!" Похоже, что-то нужно записать в модуль регистра сведений, но я туплю :(
Подскажите, пожалуйста!
А может быть в качестве измерения нельзя использовать Документ?
Или может быть вообще подойти к проблемы в другой стороны?
Сделал такую процедуру в форме документа:
Процедура ДействияФормыОткрытьФормуЗаявкиНаСборку(Кнопка)
ФормаЗаявкиНаСборку = РегистрыСведений.ЗаявкиНаСборку.ПолучитьФорму("ФормаЗаписи");
ФормаЗаявкиНаСборку.ЗаказПокупателя = Ссылка;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ *
|ИЗ
| РегистрСведений.ЗаявкиНаСборку КАК ЗаявкиНаСборку
|ГДЕ
| ЗаявкиНаСборку.ЗаказПокупателя = &ЗаказПокупателя";
Запрос.УстановитьПараметр("ЗаказПокупателя",Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ФормаЗаявкиНаСборку,Выборка);
КонецЕсли;
ФормаЗаявкиНаСборку.Открыть();
КонецПроцедуры
ПоказатьПодскажите, пожалуйста!
А может быть в качестве измерения нельзя использовать Документ?
Или может быть вообще подойти к проблемы в другой стороны?
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Загрузка документов из Excel в 1С: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Формирование цепочки документов (Реализация - Поступление - Реализация ..... - Поступление)
- Свертка базы - или как свернуть базу УТ 10.3
- Интеграция маркетплейсов в 1С:УТ 10.3, КА 1.1, УПП 1.3
Найденные решения
Или еще можно создать процедуру в модуле формы "Заказа покупателя", которая будет открывать форму записи РС соотв. конкретному документу. И привязать эту процедуру к кнопке.
Процедура ОсновныеДействияФормыРеквизитыНаРС(Кнопка)
Если Ссылка.Пустая() Тогда
Предупреждение("Документ не записан! Для ввода реквизитов в РС документ необходимо записать!");
КонецЕсли;
Запись = РегистрыСведений.РС.СоздатьМенеджерЗаписи();
Запись.ЗаказПокупателя = Ссылка;
Запись.Прочитать();
Если Не Запись.Выбран() Тогда
Запись.ЗаказПокупателя = Ссылка;
КонецЕсли;
ФормаЗаписи = Запись.ПолучитьФорму();
ФормаЗаписи.Открыть();
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Примерно так это может выглядеть
&НаСервере
Процедура УстановитьЗначенияРеквизитов()
Запись = РегистрыСведений.РеквизитыДокумента.СоздатьМенеджерЗаписи();
Запись.Документ = Ссылка;
Запись.Прочитать();
Если Запись.Выбран() Тогда
Запись.Реквизит1 = Реквизит1;
// ..................
// ..................
// ..................
Запись.РеквизитN = РеквизитN;
Запись.Записать();
КонецЕсли;
КонецПроцедуры
Показать
Судя по приведенному вами коду эти реквизиты из РС выводятся на форму документа. Ну тогда посадите кнопку на эту форму, и привяжите к ней процедуру по сохранению этих реквизитов в РС.
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ФормаЗаявкиНаСборку,Выборка);
КонецЕсли;
Или еще можно создать процедуру в модуле формы "Заказа покупателя", которая будет открывать форму записи РС соотв. конкретному документу. И привязать эту процедуру к кнопке.
Процедура ОсновныеДействияФормыРеквизитыНаРС(Кнопка)
Если Ссылка.Пустая() Тогда
Предупреждение("Документ не записан! Для ввода реквизитов в РС документ необходимо записать!");
КонецЕсли;
Запись = РегистрыСведений.РС.СоздатьМенеджерЗаписи();
Запись.ЗаказПокупателя = Ссылка;
Запись.Прочитать();
Если Не Запись.Выбран() Тогда
Запись.ЗаказПокупателя = Ссылка;
КонецЕсли;
ФормаЗаписи = Запись.ПолучитьФорму();
ФормаЗаписи.Открыть();
КонецПроцедуры
Показать
Надо передавать отбор в РС.
Форма = РегистрыСведений.ТВОЙРС.Получить"ИМЯФОРМЫ"();
ОтборПоСписку = Форма.РегистрСведенийСписок.Отбор;
ОтборПоДокументу = ОтборПоСписку.Документ;
ОтборПоДокументу .Использование = Истина;
ОтборПоДокументу .Значение = Ссылка;
А так?
Форма = РегистрыСведений.ТВОЙРС.Получить"ИМЯФОРМЫ"();
ОтборПоСписку = Форма.РегистрСведенийСписок.Отбор;
ОтборПоДокументу = ОтборПоСписку.Документ;
ОтборПоДокументу .Использование = Истина;
ОтборПоДокументу .Значение = Ссылка;
А так?
(21)
Еще. Если у измерения "Заказ покупателя" установить галку "Ведущее", в меню "Перейти" появляется строка с вызовом РС, но при открытии я попадаю в форму списка РС (хотя формы списка не задана и в способе редактирования указано "В диалоге").
Записать(Истина);
Есть документ, к которому я хочу "преписать" запись РС. У РС есть форма записи (других форм нет). В документе добавил процедуру открытия записи РС. Форма записи по этой процедуре открывается. Теперь мне нужно ее отредактировать в этой форме и записать изменения. Но при нажатие на "ОК" или "Записать" выдается такое сообщение ("Запись с такими ключевыми полями существует!"). Куда же добавить эту строку?
Еще. Если у измерения "Заказ покупателя" установить галку "Ведущее", в меню "Перейти" появляется строка с вызовом РС, но при открытии я попадаю в форму списка РС (хотя формы списка не задана и в способе редактирования указано "В диалоге").
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот