|
Проверка данных ТЗ и их запись в РС | ☑ | ||
---|---|---|---|---|
0
MIF_HELM
18.06.18
✎
10:04
|
Здравствуйте, написал код:
Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзменении(Элемент) ТекущиеДанные = Элементы.ТаблицаРесурсыИзделия.ТекущиеДанные; Если ТекущиеДанные = Неопределено Тогда Возврат; КонецЕсли; ПризнакОсновногоРесурса = ТекущиеДанные.ПризнакОсновногоРесурса; Для Каждого СтрокаТЧ Из ТаблицаРесурсыИзделия Цикл СтрокаТЧ.ПризнакОсновногоРесурса = Ложь; СтруктураЗаписи = Новый Структура("Изделие,РесурсыИзделия,ЕдиницыИзмерения,СпособыХранения,СрокСлужбы,СрокХранения,УстановленныйРесурс,ПризнакОсновногоРесурса,Примечание"); СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка); ЗаполнитьЗначенияСвойств(СтруктураЗаписи, ТекущиеДанные); РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи); КонецЦикла; ТекущиеДанные.ПризнакОсновногоРесурса = ПризнакОсновногоРесурса; КонецПроцедуры &НаСервереБезКонтекста Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи); РС = РегистрыСведений.Ресурсы.СоздатьНаборЗаписей(); РС.Отбор.Изделие.Установить(СтруктураЗаписи.Изделие); РС.Отбор.РесурсыИзделия.Установить(СтруктураЗаписи.РесурсыИзделия); РС.Прочитать(); РС.Очистить(); Для Каждого Строка Из СтруктураЗаписи Цикл СтрокаРС = РС.Добавить(); СтрокаРС.Изделие = СтруктураЗаписи.Изделие; СтрокаРС.РесурсыИзделия = СтруктураЗаписи.РесурсыИзделия; СтрокаРС.ЕдиницыИзмерения = СтруктураЗаписи.ЕдиницыИзмерения; СтрокаРС.СпособыХранения = СтруктураЗаписи.СпособыХранения; СтрокаРС.СрокСлужбы = СтруктураЗаписи.СрокСлужбы; СтрокаРС.СрокХранения = СтруктураЗаписи.СрокХранения; СтрокаРС.УстановленныйРесурс = СтруктураЗаписи.УстановленныйРесурс; СтрокаРС.ПризнакОсновногоРесурса = СтруктураЗаписи.ПризнакОсновногоРесурса; СтрокаРС.Примечание = СтруктураЗаписи.Примечание; СтруктураЗаписи.ПризнакОсновногоРесурса = Ложь; КонецЦикла; РС.Записать(); КонецПроцедуры В идеале при выставлении пользователем в колонке типа Булево "флажка" (ПризнакОсновногоРесурса) все остальные значения колонки снимаются, после чего всё записываются в специально отведенный РС. Но столкнулся с проблемами: 1) Программа пытается, но не может записать строку которую изменяет пользователь (выдает ошибку на тему того что запись с такими полями уже существует) 2) Так и не записывает данные в РС. Помогите решить как это исправить. |
|||
1
formista2000
18.06.18
✎
10:07
|
(0) Проверить состав данных и измерения РС для начала - дубликаты попадаются вестимо!
|
|||
2
MIF_HELM
18.06.18
✎
10:10
|
Да, я тоже это понял, но не могу понять как мне добавить его в исключения, хотел через НайтиПоИдентификатору(ТекущаяСтрока);
Но процедура не может понять значение ТекущаяСтрока и тут я встрял. |
|||
3
hhhh
18.06.18
✎
10:27
|
(2) вроде тут нигде нет ТекущаяСтрока ??
|
|||
4
formista2000
18.06.18
✎
10:29
|
НЕ
Для Каждого Строка Из СтруктураЗаписи Цикл СтрокаРС = РС.Добавить(); СтрокаРС.Изделие = СтруктураЗаписи.Изделие; А Для Каждого Строка Из СтруктураЗаписи Цикл СтрокаРС = РС.Добавить(); СтрокаРС.Изделие = Строка.Изделие; !!! |
|||
5
MIF_HELM
18.06.18
✎
10:30
|
Вот так пытался добавить:
Если ТаблицаРесурсыИзделия.НайтиПоИдентификатору(ТекущаяСтрока) Тогда РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи); КонецЕсли; Но тогда выдает ошибку: {Справочник.ЭФО.Форма.ФормаЭлемента.Форма(588)}: Значение не является значением объектного типа (ТекущаяСтрока) ТекущаяСтрока = ДополнительныеПараметры.ТекущаяСтрока; |
|||
6
MIF_HELM
18.06.18
✎
10:31
|
formista2000, если писать так, то 1С не может определить переменную.
|
|||
7
formista2000
18.06.18
✎
10:35
|
(6) Ты в цикле по полям структуры ходишь, твоя переменная Строка - поле структуры. А надо передавать таблицу, чтобы Строка содержала поля таблицы и брать данные из её реквизитов.
|
|||
8
MIF_HELM
18.06.18
✎
10:38
|
formista2000, а как это сделать? Просто я в 1С еще новенький.
|
|||
9
hhhh
18.06.18
✎
10:41
|
(8) что такое ТекущаяСтрока у тебя? Откуда она вылезла?
|
|||
10
MIF_HELM
18.06.18
✎
11:36
|
hhhh, с помощью нее хотел сделать проверку и если это текущая строка то не перезаписывать её значение (не получилось)
|
|||
11
hhhh
18.06.18
✎
12:11
|
(10) вообще вот тут непонятно
Для Каждого Строка Из СтруктураЗаписи Цикл СтруктураЗаписи это же структура, откуда у нее строки вдруг появились? |
|||
12
MIF_HELM
18.06.18
✎
12:25
|
hhhh, если честно еще не настолько хорошо знаю 1С чтобы понимать откуда, но так понимаю что после вот этого кода:
СтруктураЗаписи = Новый Структура("Изделие,РесурсыИзделия,ЕдиницыИзмерения,СпособыХранения,СрокСлужбы,СрокХранения,УстановленныйРесурс,ПризнакОсновногоРесурса,Примечание"); СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка); ЗаполнитьЗначенияСвойств(СтруктураЗаписи, ТекущиеДанные); В структуре есть все нужные строки ТЗ. |
|||
13
hhhh
18.06.18
✎
12:45
|
(12) там вообще нет строк. От слова совсем. Ничего с неба не появляется по воле господа. В вашей программе нет добавления строк. Значит их нет.
|
|||
14
hhhh
18.06.18
✎
12:47
|
(12) вы вообще программист?
|
|||
15
MIF_HELM
18.06.18
✎
13:52
|
hhhh, спасибо за помощь, разабрался сам, извините за потраченное время.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |