Помогите с кодом 1C управляемая форма

1. andryus 101 09.10.23 22:28 Сейчас в теме
Помогите новичку с кодом УФ. Провожу документ ПоступлениеКомпьютеров. В данном документе табличная часть состоящая из колонок СИСТЕМНЫЙБЛОК, МОНИТОР, ПРИНТЕР, ИБП. Задача следующая при проведении документа нужно создать новый элемент справочника КОМПЬЮЕТРЫ состоящий из просто КОД и НАИМЕНОВАНИЕ и при том проверить нет ли уже такого элемента (то есть чтобы при перепроведении документа не создавался новый элемент справочника". Далее в регистр сведений СОСТАВКОМПЬЮТЕРАю Записываем значения из документа СИСТЕМНЫЙБЛОК, МОНИТОР, ПРИНТЕР, ИБП и! новый созданный элемент выше из справочника КОМПЬЮТЕРЫ. Всем спасибо за помощь
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 09.10.23 23:16 Сейчас в теме
(1) 17 лет стажа - новичок. При проведении создавать справочник. Что случилось с этим миром?!
3. andryus 101 09.10.23 23:18 Сейчас в теме
(2) я последний раз занимался программированием в 1С лет 5-7 назад и то в 7.7, то что тут показывает стаж, это не значит что я этим 17 лет занимаюсь. И то что
При проведении создавать справочник.
я может и кажусь тупым, но я это и сам понял и по моему в начале написал что при проведении документа создать и НЕ СПРАВОЧНИК как пишите Вы, а элемент справочника
4. Sashares 33 10.10.23 00:00 Сейчас в теме
(3)
НЕ СПРАВОЧНИК как пишите Вы, а элемент справочника

Вас правильно поняли. Это намек, что данное действие очень плохое проектное решение.
Документ могут провести еще раз, отменить проведение, еще раз провести, а потом и совсем удалить.
На каждое проведение справочник создавать будете?
5. andryus 101 10.10.23 06:52 Сейчас в теме
(4) вот в этом и основная проблема. Как создать элемент справочника при проведении я уже понял, а как сделать так чтобы при проведении, перепроведении каждый раз не создавался новый элемент не знаю, о чем тоже писал выше, и потом вообще подумал а зачем создавать элемент справочника ради того чтобы в нем хранилось только наименование, это же можно сделать в самом регистре сведений. Но вот не знаю правильная ли структура такого регистра, что будет состоять из одного ресурса КОМПЬЮТЕР с типом СТРОКА и измерениями СИСТЕМНЫЙ БЛОК, МОНИТОР, ПРИНТЕР, ИБП (и вот эти элементы тип справочник). Не совсем нравится такая структура. А образно мне нужно сделать задачу где будет хранится информация что есть КОМПЬЮТЕР 1, который состоит из системного блока, монитора, ИБП, принтера ну в последующем в случае замены какого то элемента состав КОМПЬЮТЕР 1 может меняться. Вот как то так
6. spacecraft 10.10.23 07:23 Сейчас в теме
(5) в документ добавить реквизит с типом нужного справочника.
Заполнять его или вручную (пользователь создает) или в транзакции ПередЗаписью создавать при необходимости, если отсутствует.
РС поменять измерения и ресурсы местами.
Измерение - нужный справочник.
Ресурсы - все составные этого компьютера.
7. andryus 101 10.10.23 08:10 Сейчас в теме
(6) я не правильно написал про РС у меня в РС так и есть что измерение это компьютер а ресурсы это составные, перепутал местами при написании сообщения))) а как идея чтобы вообще от справочника отказаться? То как описал выше?
8. spacecraft 10.10.23 08:14 Сейчас в теме
(7) если не нужны ссылочные данные и достаточно табличных, то можно и отказаться.
Но если нужна будет ссылка на компьютер, то ...
9. RustamZz 10.10.23 12:04 Сейчас в теме
(3) Интересно, что вынудило вернуться в 1С и выполнять задачи уровня джун. Ниже коллеги все вроде бы правильно написали. Лично я бы сделал кнопочку в форме документа: Создать компьютер, и заносил его ссылкой в сам документ.
10. gybson 11.10.23 11:45 Сейчас в теме
(2) Итилиум 5 не видели?

Процедура ЗаполнитьТабличнуюЧастьНаОснованииПоступления(Номенклатура, Количество)
	Объект.Номенклатура = Номенклатура;
	МенеджерОС = Справочники.ОсновныеСредства;
	Для й=1 По Количество Цикл
		
		НС = Объект.ОсновныеСредства.Добавить();
		
		НовоеОС = МенеджерОС.СоздатьЭлемент();
		НовоеОС.Наименование = Номенклатура.Наименование;
		НовоеОС.Записать();
		
		НС.ОсновноеСредство = НовоеОС.Ссылка;
		НС.ИнвентарныйНомер = НовоеОС.Код;
		
	КонецЦикла;
КонецПроцедуры
Показать


Конфигурация от начала до конца написана новичками =) 149 000 рублей стоит. И ведь берут =)
11. RustamZz 11.10.23 12:02 Сейчас в теме
(10) Это при проведении делается?
13. gybson 11.10.23 13:26 Сейчас в теме
(11) не, это по кнопке, слава Богу. Но это не делает схему менее рискованной.
12. Good_Smile 11.10.23 12:55 Сейчас в теме
(10) жесть конечно, как пользователям потом в этом жить? но может я чего-то не понимаю и ОС это не наименование, а только инв номер.. и бухгалтер по учету ОС их заучивает наизусть, а, разбудив его в любой час ночи, он тебе сможет сказать есть ли у него на балансе инв номер 00074516 =))
14. andryus 101 24.10.23 23:10 Сейчас в теме
(10) МенеджерОС = Справочники.ОсновныеСредства;

Вот это если на &НаКлиенте при проверке модуля выдает ошибку что Переменная не определена (Справочники)

Это я все таки решил делать кнопкой в форме документа, при нажатии кнопки создается справочник.ссылка и заполняется в реквизит табличной части документа
15. schweigen 25.10.23 03:23 Сейчас в теме
(1)
В таком случае логично иметь функцию, которая всегда возвращает существующий Компьютер (если его нет - создает, записывает и тоже возвращает уже существующий). Документ использует эту функцию и не работает со справочником напрямую.

Из твоей задачи не понятно, что есть Компьютер, по каким полям отличать один от другого, => нельзя понять, есть уже этот комп в программе или нет.
Если документ называется ПоступлениеКомпьютеров, то логично предположить, что компа еще нет. Через это не понятно, зачем вообще проверять на наличие компьютера в базе, если он этим документом только поступает.
16. andryus 101 25.10.23 07:17 Сейчас в теме
(15) имеете ввиду функцию сделать в глобальном модуле если пишите что документ использует функцию но не работает с справочником?
Насчёт проверки зачем проверять на наличие компьютера это с целью что документ можно перепровести, удалить, снова провести в таких случаях может создаваться новый элемент, хотя в этом уже нет необходимости, потому что это будет в поле документа, а проверять будет заполнено поле или нет.
А ошибку вчера понял что &НаКлиенте не возможно обращаться к справочникам. Попробовал в функции определить справочник и в процедуру результатом функции вернуть справочник тоже не получилось
17. andryus 101 29.10.23 03:15 Сейчас в теме
Задачу решил. Всем спасибо)
Оставьте свое сообщение

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