Здравствуйте, написал код:

Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзменении(Элемент)

 ТекущиеДанные = Элементы.ТаблицаРесурсыИзделия.ТекущиеДанные;
    Если ТекущиеДанные = Неопределено Тогда
        Возврат;
 КонецЕсли;

 ПризнакОсновногоРесурса = ТекущиеДанные.ПризнакОсновногоРесурса;

  Для Каждого СтрокаТЧ Из ТаблицаРесурсыИзделия Цикл
   СтрокаТЧ.ПризнакОсновногоРесурса = Ложь;

 СтруктураЗаписи = Новый Структура("Изделие,РесурсыИзделия,ЕдиницыИзмерения,СпособыХранения,СрокСлужбы,СрокХранения,УстановленныйРесурс,ПризнакОсновногоРесурса,Примечание");
 СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка);
 ЗаполнитьЗначенияСвойств(СтруктураЗаписи, ТекущиеДанные);

  РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи);

 КонецЦикла;
 ТекущиеДанные.ПризнакОсновногоРесурса = ПризнакОсновногоРесурса;
КонецПроцедуры

&НаСервереБезКонтекста
Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи);

РС = РегистрыСведений.Ресурсы.СоздатьНаборЗаписей();
  РС.Отбор.Изделие.Установить(СтруктураЗаписи.Изделие);
  РС.Отбор.РесурсыИзделия.Установить(СтруктураЗаписи.РесурсыИзделия);
  РС.Прочитать();
  РС.Очистить();

   Для Каждого Строка Из СтруктураЗаписи Цикл
      СтрокаРС = РС.Добавить();
   СтрокаРС.Изделие = СтруктураЗаписи.Изделие;
      СтрокаРС.РесурсыИзделия = СтруктураЗаписи.РесурсыИзделия;
      СтрокаРС.ЕдиницыИзмерения = СтруктураЗаписи.ЕдиницыИзмерения;
      СтрокаРС.СпособыХранения = СтруктураЗаписи.СпособыХранения;
      СтрокаРС.СрокСлужбы = СтруктураЗаписи.СрокСлужбы;
      СтрокаРС.СрокХранения = СтруктураЗаписи.СрокХранения;
      СтрокаРС.УстановленныйРесурс = СтруктураЗаписи.УстановленныйРесурс;
      СтрокаРС.ПризнакОсновногоРесурса = СтруктураЗаписи.ПризнакОсновногоРесурса;
      СтрокаРС.Примечание = СтруктураЗаписи.Примечание;
      СтруктураЗаписи.ПризнакОсновногоРесурса = Ложь;
 КонецЦикла;

  РС.Записать();

КонецПроцедуры

В идеале при выставлении пользователем в колонке типа Булево "флажка" (ПризнакОсновногоРесурса) все остальные значения колонки снимаются, после чего всё записываются в специально отведенный РС. Но столкнулся с проблемами:
1) Программа пытается, но не может записать строку которую изменяет пользователь (выдает ошибку на тему того что запись с такими полями уже существует)
2) Так и не записывает данные в РС.
Помогите решить как это исправить.
---
Может быть кому нибудь пригодится для примера
Решение:

&НаКлиенте
Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзменении(Элемент)

 ТекущиеДанные = Элементы.ТаблицаРесурсыИзделия.ТекущиеДанные;
    Если ТекущиеДанные = Неопределено Тогда
        Возврат;
 КонецЕсли;

 СтруктураЗаписи = Новый Структура("Изделие,РесурсыИзделия,ЕдиницыИзмерения,СпособыХранения,СрокСлужбы,СрокХранения,УстановленныйРесурс,ПризнакОсновногоРесурса,Примечание");
 СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка);
 ЗаполнитьЗначенияСвойств(СтруктураЗаписи, ТекущиеДанные);

 МассивСтрок=ТаблицаРесурсыИзделия.НайтиСтроки(Новый структура("ПризнакОсновногоРесурса",ТекущиеДанные.ПризнакОсновногоРесурса));
 Если МассивСтрок.Количество() > 1 Тогда
  Для Каждого СтрокаТЧ Из МассивСтрок Цикл
    Если СтрокаТЧ.ПризнакОсновногоРесурса Тогда
    СтрокаТЧ.ПризнакОсновногоРесурса = Ложь;
    СтруктураЗаписи = Новый Структура("Изделие,РесурсыИзделия,ЕдиницыИзмерения,СпособыХранения,СрокСлужбы,СрокХранения,УстановленныйРесурс,ПризнакОсновногоРесурса,Примечание");
    СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка);
    ЗаполнитьЗначенияСвойств(СтруктураЗаписи, СтрокаТЧ);
   РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи);
  КонецЕсли;
 КонецЦикла;
 КонецЕсли;

 КонецПроцедуры

&НаСервереБезКонтекста
Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи);

     РС = РегистрыСведений.Ресурсы.СоздатьНаборЗаписей();
     РС.Отбор.Изделие.Установить(СтруктураЗаписи.Изделие);
     РС.Отбор.РесурсыИзделия.Установить(СтруктураЗаписи.РесурсыИзделия);

  Запись = РС.Добавить();
  ЗаполнитьЗначенияСвойств(Запись, СтруктураЗаписи);

 Попытка

  РС.Записать();

 Исключение

  Сообщение = Новый СообщениеПользователю;
  Сообщение.Текст = "Произошла ошибка при удалении ресурса изделия";
  Сообщение.Сообщить();

  ЗаписьЖурналаРегистрации("Произошла ошибка при удалении ресурса изделия");

  Отказ = Истина;

 КонецПопытки;

КонецПроцедуры
---
Вместо унылого перечисления полей
....
СтрокаРС.СпособыХранения = СтруктураЗаписи.СпособыХранения;
СтрокаРС.СрокСлужбы = СтруктураЗаписи.СрокСлужбы;
СтрокаРС.СрокХранения = СтруктураЗаписи.СрокХранения;
...
всегда используйте процедуру ЗаполнитьЗначенияСвойств(Приемник, Источник)

И еще лучше: не переносите из таблицы в набор записей регистра, а выведите
поле типа "Набор записей регистра" на форму. Даже программировать не нужно.
---
up
---
Это означает, что в Вашем регистре уже есть запись с таким набором измерений. Поэтому и вываливается ошибка. Следовательно, нужно пересмотреть структуру Вашего регистра.
---
Это я понимаю, и хотел попробовать добавить эту колонку в исключения через НайтиПоИдентификатору(ТекущаяСтрока), но не вышло.
---
В смысле "в исключения"?! В исключения чего?
---
Через Если Не ТаблицаРесурсыИзделия.НайтиПоИдентификатору(ТекущаяСтрока) Тогда
....
КонецЕсли;
То есть проверить и если это та самая строка которую мы меняем то не трогать её
---
Зачем вообще Вы перебираете циклом это ТаблицаРесурсыИзделия? У вас же уже есть ТекущиеДанные. Там все находится.
---
И вообще такое мне кажется лучше делать при записи документа. Ибо ссылки может еще не быть...
---
Немного не понял. Запись строк в ТЗ (ТаблицаРесурсыИзделия) у меня происходит в РС в процедуре ПриОкончанииРедактирования, сейчас мне нужно изменить-записать что у меня изменилось значение в одной колонке. Я не говорю что у меня написано правильно, наоборот мне нужно изменить чтобы было правильно, помогите пожалуйста поправить.
---
Вы тут СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка);
делаете отбор по ссылке. Ссылки может и не быть еще. Вы можете просто создать объект и на форме тыкать свою галочку. И у Вас будет ошибка. Я не понимаю изначальную задачу, поэтому могу лишь предположить. В процедуре после записи. когда уже есть ссылка, обходите свою табличную часть и пишите данные в регистр. Зачем они там вам нужны при установке галочки?
---
Ошибка то выходит не из за того что ссылки нет, а из за того что программа пытается записать строку которая уже есть, мне с этим нужно разобрать. Проще говоря, мне нужно чтобы все остальные строки ТЗ записались в регистр кроме той которую я изменяю.
---
Вы меня не поняли. Вам нужно записывать данные в регистр только после записи самого объекта.
---
Объект Записался, если вы про данные в ТЗ, вопрос как перезаписать данные других строк ТЗ-Регистра
---
У регистра сведений в записи есть параметр. Замещать. По умолчанию, вроде, стоит ложь. Посмотрите синтакс-помощник.
---
параметр. Замещать Это ведь только через МенеджерЗаписи, через набор нельзя?
---
Чем тебя не устроил ответ в другой твоей теме?Выведи на форму справочника табличную часть,где будет отображаться записи из твоего регистра. ТЧ заполняй при открытии справочника.Записывай при записи справочника.Удаляй все записи в регистре с отбором по справочнику,и записывай новый набор.
Если принципиально делать запись в регистр после изменения ТЧ, тогда делай аналогично,удаляй движения по отбору и записывай новые.
---
Извините, тогда был какой то глюк на форуме и я не мог ничего писать. А это все мне нужно для того чтобы пользователь вводил все в тз и только проходя все проверки эти данные записывались в регистр.
---
Добавь свои проверки и запись в регистр в момент записи справочника =)
---
Давайте не будем менять все, просто если есть возможность подскажите как поправить то что есть)
---
попробуй (14)
---
Замени

РС.Прочитать();
РС.Очистить();

на

РС.Записать();
---
Может быть кому нибудь пригодится для примера
Решение:

&НаКлиенте
Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзменении(Элемент)

 ТекущиеДанные = Элементы.ТаблицаРесурсыИзделия.ТекущиеДанные;
    Если ТекущиеДанные = Неопределено Тогда
        Возврат;
 КонецЕсли;

 СтруктураЗаписи = Новый Структура("Изделие,РесурсыИзделия,ЕдиницыИзмерения,СпособыХранения,СрокСлужбы,СрокХранения,УстановленныйРесурс,ПризнакОсновногоРесурса,Примечание");
 СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка);
 ЗаполнитьЗначенияСвойств(СтруктураЗаписи, ТекущиеДанные);

 МассивСтрок=ТаблицаРесурсыИзделия.НайтиСтроки(Новый структура("ПризнакОсновногоРесурса",ТекущиеДанные.ПризнакОсновногоРесурса));
 Если МассивСтрок.Количество() > 1 Тогда
  Для Каждого СтрокаТЧ Из МассивСтрок Цикл
    Если СтрокаТЧ.ПризнакОсновногоРесурса Тогда
    СтрокаТЧ.ПризнакОсновногоРесурса = Ложь;
    СтруктураЗаписи = Новый Структура("Изделие,РесурсыИзделия,ЕдиницыИзмерения,СпособыХранения,СрокСлужбы,СрокХранения,УстановленныйРесурс,ПризнакОсновногоРесурса,Примечание");
    СтруктураЗаписи.Вставить("Изделие", Объект.Ссылка);
    ЗаполнитьЗначенияСвойств(СтруктураЗаписи, СтрокаТЧ);
   РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи);
  КонецЕсли;
 КонецЦикла;
 КонецЕсли;

 КонецПроцедуры

&НаСервереБезКонтекста
Процедура РесурсыИзделияПризнакОсновногоРесурсаПриИзмененииНаСервере(СтруктураЗаписи);

     РС = РегистрыСведений.Ресурсы.СоздатьНаборЗаписей();
     РС.Отбор.Изделие.Установить(СтруктураЗаписи.Изделие);
     РС.Отбор.РесурсыИзделия.Установить(СтруктураЗаписи.РесурсыИзделия);

  Запись = РС.Добавить();
  ЗаполнитьЗначенияСвойств(Запись, СтруктураЗаписи);

 Попытка

  РС.Записать();

 Исключение

  Сообщение = Новый СообщениеПользователю;
  Сообщение.Текст = "Произошла ошибка при удалении ресурса изделия";
  Сообщение.Сообщить();

  ЗаписьЖурналаРегистрации("Произошла ошибка при удалении ресурса изделия");

  Отказ = Истина;

 КонецПопытки;

КонецПроцедуры