Всем привет!
Как изменить табличную часть документа в обработке Групповое изменение реквизитов - все понятно и работает.
А изменить табличную часть справочника в обработке Групповое изменение реквизитов не получается. Здесь нет закладок для табличных частей, поэтому применяю "Выполнить произвольный алгоритм" на примере Справочника "Информационные карты (дисконтные карты)" для 1С Розница:
============================================================­==
Объект.КонтактнаяИнформация.Добавить();
Для Каждого Строка Из Объект.КонтактнаяИнформация Цикл
 Строка.НомерТелефона = "1234567890";
 Объект.Наименование=Объект.Наименование+" "
      +Строка.НомерСтроки+" "
      +Строка.НомерТелефона;
КонецЦикла;
Объект.Записать();
============================================================­==
В выбранных элементах справочника в табличной части "КонтактнаяИнформация" не было ни одной записи. Выполнение происходит без ошибок, чтобы убедиться, что алгоритм работает, добавляемый в таблицу текст присоединяю к названию элемента справочника.

Что не так? К названию элементов справочников добавились номер строки 1 и текст 1234567890. А табличная часть осталась пустой и ничего не заполнилось. Т.е. элементы справочника сохранились, а их табличная часть не сохранилась.

В интернете куча информации как изменить табличную часть документа в обработке Групповое изменение реквизитов и ничего нет про справочник. Кто-нибудь это делал?

Желательно как это сделать именно в обработке "Групповое изменение реквизитов" стандартным способом, а не напрямую через конфигуратор. Или это косяк обработки?
---
Просто вдумчиво прочитайте код:
---
Окончательное решение по добавлению номера телефона в Информационную карту через Групповую обработку реквизитов (спасибо nomad_irk - сообщение 23):
============================================================­==================
Объект.КонтактнаяИнформация.Очистить();
ВидКИТелефон = Справочники.ВидыКонтактнойИнформации.ТелефонИнформационнойКарты;
СтрокаКИ = Объект.КонтактнаяИнформация.Добавить();
СтрокаКИ.Вид = ВидКИТелефон;
СтрокаКИ.Тип = ВидКИТелефон.Тип;
СтрокаКИ.НомерТелефона = "1234567890";
СтрокаКИ.Представление = "1234567890";
Объект.Записать();
---
```1c
    УправлениеКонтактнойИнформациейСлужебный.ДобавитьКонтактнуюИнформацию(Объект, Телефон, Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
```

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

Строка = Объект.КонтактнаяИнформация.Добавить();
Строка.НомерТелефона = "1234567890";
Строка.Наименование = Объект.Наименование+" "+Строка.НомерСтроки+" "+Строка.НомерТелефона;
Объект.Записать();

данный код добавит 1 строку в ТЧ КонтактнаяИнформация, где в поле номер телефона будет 1234567890
а в поле Наименование - более сложное непонятное преобразование.
---
"В интернете куча информации как изменить табличную часть документа в обработке Групповое изменение реквизитов и ничего нет про справочник. Кто-нибудь это делал?"

разницы не замечал между справочником и документом. также список таб частей и т.д. возможно версия обработки меняется.

могу предположить, что у данного справочника нет этой табличной части и она тянется через какой нить регистр сведений КИ.
---
Предложен пока единственный конкретный вариант для пробы:

```1c
    Строка = Объект.КонтактнаяИнформация.Добавить();
    Строка.НомерТелефона = "1234567890";
    Строка.Наименование = Объект.Наименование+" "+Строка.НомерСтроки+" "+Строка.НомерТелефона;
    Объект.Записать();
```

К сожалению, не выполняется в Групповой обработке реквизитов (Рабочий режим 1С (не конфигуратор) - Администрирование - Обслуживание - Корректировка данных - Групповое изменение реквизитов)
Строка = Объект.КонтактнаяИнформация.Добавить();
"К сожалению, возникла непредвиденная ошибка
Попробуйте повторить операцию.
Если ошибка повторится, попробуйте перезапустить приложение или обратитесь к администратору приложения или техническому специалисту."
---
описание еще какое-то мутное.

а проверьте на других справочниках - как работает эта обработка, где точно есть табличные части.
позволяет ли она их менять также как и в документах?
---
1. Ну ты бы хоть для начала метаданные посмотрел, что ли... Ну нет у КИ реквизита Наименование. НЕТ!
---
Как-то странно обработка работает. Повторил вечером, ошибку не выдает, но результат такой-же как в моем варианте - табличная часть не сохраняется. Наверно во время выполнения элементы справочника были кем-то заняты.
Для полной ясности описания проблемы привожу скриншоты проблемы.
---
табличная часть не сохраняется. Я тебе ещё раз повторю, мне не сложно: надо заполнять и ДРУГИЕ поля в Контактной информации.
---
Открой, пожалуйста секрет, какие поля нужно еще заполнять, кроме номера телефона ?
---
Некую подсказку тебе уже дали в (8)
Ну или просто посмотри, что реально хранится в ТЧ Контактная информация в нормально заполненных объектах.
---
Обработка "Групповое изменение реквизитов" по определению предназначена для изменения реквизитов элементов справочника и их табличных частей. Я просто пользуюсь функционалом этой обработки и не могу понять решение обозначенной проблемы (в 15 я уже даже в картинках показал проблему).
Зачем мне отказываться от этой разработки и использовать БСП? Это же другой способ изменения табличных частей справочников.
---
Ты сам с собой разговариваешь? Используй обработку, кто тебе мешает? Но информацию о том ЧТО И КАК заполнять в КИ - вполне себе можешь посмотреть в БСП. Тебе уже и модуль и метод нарисовали.
---
Надеюсь на помощь специалистов, обращаюсь к ним.
Для пробы внутри обработки "Групповая обработка реквизитов" запускаю следующий код:
==========================================================
Объект.КонтактнаяИнформация.Добавить();
ТелефонСтруктура = Новый Структура;
 ТелефонСтруктура.Вставить("Представление", "+7 (123) 456-78-95");
 ТелефонСтруктура.Вставить("Комментарий", "тестовый номер 2");
 ТелефонСтруктура.Вставить("КодСтраны", "7");
 ТелефонСтруктура.Вставить("КодГорода", "123");
 ТелефонСтруктура.Вставить("НомерТелефона", "456-78-95");
 ТелефонXML = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ТелефонСтруктура,"", Перечисления.ТипыКонтактнойИнформации.Телефон);
 ТелефонJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ТелефонXML);
 УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(Объект, ТелефонJSON, Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента, ТекущаяДата(), Истина);
Объект.Записать();
============================================================­======================
Ошибок при выполнении нет. Результат такой же - ничего не меняется
Подозреваю, что УправлениеКонтактнойИнформацией должно крутиться на сервере, а обработка крутится на клиенте.
---
```1c
    УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(Объект, "123", Справочники.ВидыКонтактнойИнформации.ТелефонИнформационнойКарты, ТекущаяДата(), Истина);
```
---
Просто вдумчиво прочитайте код:
---
Спасибо за подсказку, проверю на примере Справочника Информационные карты
---
Окончательное решение по добавлению номера телефона в Информационную карту через Групповую обработку реквизитов (спасибо nomad_irk - сообщение 23):
============================================================­==================
Объект.КонтактнаяИнформация.Очистить();
ВидКИТелефон = Справочники.ВидыКонтактнойИнформации.ТелефонИнформационнойКарты;
СтрокаКИ = Объект.КонтактнаяИнформация.Добавить();
СтрокаКИ.Вид = ВидКИТелефон;
СтрокаКИ.Тип = ВидКИТелефон.Тип;
СтрокаКИ.НомерТелефона = "1234567890";
СтрокаКИ.Представление = "1234567890";
Объект.Записать();
---
Остался открытым вопрос - а нахрена вообще использовать групповую обработку для внесения одинакового номера телефона разным картам? Что за бизнес-процесс такой интересный?
---
Может быть, пользуясь служебным положением, он хочет оформить супер-скидку? Думаю, не стоит вскрывать эту тему.
---
Когда человек ставит "лайк" на своем сообщении, а не на том, с которого он взял идею - многое говорит об этом человеке, как по-мне :)
---
Мелочь, а не приятно)
Я так и не понял, почему БСП не сработал.
---
Под капот обработки не лазил, возможно, Объект имеет тип ДанныеФормыСтруктура, потому как со СправочникОбъект/СправочникСсылка оно работает различая типы.
---
Прошу прощения, исправил лайк, если это принципиально. Просто исходная проблема была на примере справочника Информационные карты, а не Физические лица. Как бы ответ на исходный вопрос, а не на соседний.
Когда программист ложится спать, он на тумбочку ставит два стакана: один с водой, если захочет пить, второй пустой, если не захочет пить.
---
исправил лайк, если это принципиально
Нет, вообще не принципиально.
 Просто исходная проблема была на примере справочника Информационные карты, а не Физические лица. Как бы ответ на исходный вопрос, а не на соседний.
Лично у меня нет под рукой конфигурации, имеющей справочник Информационные карты, я показал принцип/подход, т.к. он одинаковый для любых объектов типовых конфигураций, будь то Информационные карты или Физические Лица и ценна именно сама идея, а не какая-то конкретная её реализация.
Патентное право защищает именно идеи, а не их реализации.
---
Когда человек ставит "лайк" на своем сообщении, а не на том, с которого он взял идею - многое говорит об этом человеке, как по-мне :)
Еще раз извиняюсь, если обидел.
На самом деле я не тщеславный и не обидчивый. Даже на такие высказывания не обижаюсь:
"Ну и за сам алгоритм надо отбирать клавиатуру, конечно.
Позови-ка лучше программиста. А сам не подходи больше к обработке данных, а то такого с данными натворишь - в тюрьму еще посадят потом..."
"Он же не программист - откуда ему знать про БСП..."
Копаюсь в потрохах 1С с 1995 года начинал с 5-той версии (DOS версия), лично встречался с разработчиком Сергеем Нуралиевым (до сих пор руку не мою, когда поздоровались :-)
---
Копаюсь в потрохах 1С с 1995 года начинал с 5-той версии (DOS версия) Копаться в потрохах и программировать - как бы разные вещи. В данном случае по первым строкам кода сразу все стало видно.
Это как на экзамене на сдаче вождения:
- Мэм, вы не сдали экзамен, выходите из машины.
- Офицер, но как вы можете знать, я же только в неё села!
- Совершенно верно, мэм. Вы сели на заднее пассажирское сиденье.

Без обид.
---
Это просто тестовый пример для понимания можем заполнить номер телефона или нет в контактных данных справочника.
На самом деле заполнение будет делаться из других источников: в информационных (дисконтных) картах есть реквизиты для опроса владельца карты, там есть телефон, по ссылке владелец карты (контрагент, если юрлицо или справочник Физлица) там тоже есть телефоны.
---
И причем здесь именно групповая обработка? Не увидел логики.
---
1С Розница. Создавали дисконтные карты с владельцами Контрагент-ЮрЛицо и у него номер телефона, который используется в поиске при оформлении продажи. Таких информационных карт примерно 80 тысяч.
Начиная с этого года 1С Розница запрещает продавать юрлицу, если не заполнен ИНН (а он не заполнялся).

Возникла задача переделать 80 тыс. информационных карт, где владельцы не справочник Контрагенты, а справочник Физлица без потери телефонов, которые лежат в справочнике Контрагенты.

Отсюда и вся возня.
---
Скачал последнюю Розницу: нет там КИ в дисконтных картах.
---
а справочник Информационные Карты существует?
---
В Рознице 2.3 - да. В 3.0 - нет.
---
дедуктивым методом определили версию конфигурации. Прелестно, ящетаю :)
---
В 3.0 - нет.Тогда удаляю 3.0, зачем такая конфигурация, в которой нет КИ в информационных кратах.
---
Приветствую дотошных специалистов по 1С!
Не знал, что нужны подробности, приводящие обычно в бешенство (поговорка моего научного руководителя в молодости).
Привожу скриншоты версии 1С Розница (существует куча подверсий 1С розница).
В моем случае это 1С Розница.Магазин одежды и обуви.
Фирма Рарус берет Розницу и переделывает в Магазин одежды и обуви.
В последнее время Рарус обнаглел. Раньше было имея подписку ИТС, был доступ к обновлениям почти всех версий разработок 1С. А теперь Рарус дает доступ к обновлениям своих разработок по отдельной ИТС с ними, т.е. мы теперь оплачиваем два ИТС (для Бухгалтерии и Зарплаты один ИТС, для Розница.Магазин одежды и обуви другой ИТС).