Как изменить табличную часть справочника (не документа) в обработке Групповое изменение реквизитов ?

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

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

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

Желательно как это сделать именно в обработке "Групповое изменение реквизитов" стандартным способом, а не напрямую через конфигуратор. Или это косяк обработки?
По теме из базы знаний
Найденные решения
23. nomad_irk 76 08.10.24 08:10 Сейчас в теме
(21) Просто вдумчиво прочитайте код:
Прикрепленные файлы:
SlavaKron; user2033930; +2 Ответить
25. barankov_vv 08.10.24 12:56 Сейчас в теме
Окончательное решение по добавлению номера телефона в Информационную карту через Групповую обработку реквизитов (спасибо nomad_irk - сообщение 23):
============================================================­==================
Объект.КонтактнаяИнформация.Очистить();
ВидКИТелефон = Справочники.ВидыКонтактнойИнформации.ТелефонИнформационнойКарты;
СтрокаКИ = Объект.КонтактнаяИнформация.Добавить();
СтрокаКИ.Вид = ВидКИТелефон;
СтрокаКИ.Тип = ВидКИТелефон.Тип;
СтрокаКИ.НомерТелефона = "1234567890";
СтрокаКИ.Представление = "1234567890";
Объект.Записать();
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. RustamZz 07.10.24 13:09 Сейчас в теме
(1)
УправлениеКонтактнойИнформациейСлужебный.ДобавитьКонтактнуюИнформацию(Объект, Телефон, Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);


Пользуйтесь БСП, а не отсебятиной. Все нужное уже написано до нас.
user5300; +1 Ответить
9. user2107184 07.10.24 13:12 Сейчас в теме
(8) Он же не программист - откуда ему знать про БСП...
2. user2107184 07.10.24 12:38 Сейчас в теме
Все верно отработало. Как и написано в коде.
Ты изменял наименование самого элемента справочника (Объект - это элемент справочника, ага).
А в ТЧ просто добавил пустую строку.
Как заказывал.
3. barankov_vv 07.10.24 12:44 Сейчас в теме
(2) В цикле я обратился к пустой строке Строка.НомерТелефона и записал туда текст 1234567890.
Это должно было сработать и при сохранении элемента справочника его измененная табличная часть должна была сохраниться.
А по факту не так. Где засада?
5. user2107184 07.10.24 12:47 Сейчас в теме
(3)
А по факту не так.
С чего ты взял? Ты суслика видишь? Нет? А он есть.
Строка может и сохранилась. Но так как она заполнена не полностью и не по правилам КИ - на форме она отображаться не будет, конечно. Если вообще не была удалена, как заполненная не по правилам.
6. barankov_vv 07.10.24 12:50 Сейчас в теме
(5) Меня все уверяют, что строка добавилась, но никто не говорит, почему не могу запихнуть в нее данные. Спасибо (4) за замечание про лишний цикл
7. user2107184 07.10.24 12:52 Сейчас в теме
(6)
Меня все уверяют, что строка добавилась, но никто не говорит, почему не могу запихнуть в нее данные.
Можешь. Только надо данные запихивать полностью. Там в этой строке есть и другие важные поля.
Ну и за сам алгоритм надо отбирать клавиатуру, конечно.
Позови-ка лучше программиста. А сам не подходи больше к обработке данных, а то такого с данными натворишь - в тюрьму еще посадят потом...
4. PowerBoy 3416 07.10.24 12:47 Сейчас в теме
Зачем Вам цикл?
Строка = Объект.КонтактнаяИнформация.Добавить();
10. Anton_new01 07.10.24 14:38 Сейчас в теме
(1) вы напишите, что вы пытаетесь сделать. возможно вам помогут.
а на вопрос "а что не так?" - нельзя корректно ответить. так как непонятно что вы хотите сделать.

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

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

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

могу предположить, что у данного справочника нет этой табличной части и она тянется через какой нить регистр сведений КИ.
12. barankov_vv 07.10.24 17:34 Сейчас в теме
(10) Предложен пока единственный конкретный вариант для пробы:

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


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

а проверьте на других справочниках - как работает эта обработка, где точно есть табличные части.
позволяет ли она их менять также как и в документах?
14. user2107184 07.10.24 17:59 Сейчас в теме
(12) 1. Ну ты бы хоть для начала метаданные посмотрел, что ли... Ну нет у КИ реквизита Наименование. НЕТ!
15. barankov_vv 07.10.24 18:33 Сейчас в теме
(12) Как-то странно обработка работает. Повторил вечером, ошибку не выдает, но результат такой-же как в моем варианте - табличная часть не сохраняется. Наверно во время выполнения элементы справочника были кем-то заняты.
Для полной ясности описания проблемы привожу скриншоты проблемы.
Прикрепленные файлы:
16. user2107184 07.10.24 18:35 Сейчас в теме
(15)
табличная часть не сохраняется.
Я тебе ещё раз повторю, мне не сложно: надо заполнять и ДРУГИЕ поля в Контактной информации.
17. barankov_vv 07.10.24 18:40 Сейчас в теме
(16) Открой, пожалуйста секрет, какие поля нужно еще заполнять, кроме номера телефона ?
18. user2107184 07.10.24 18:43 Сейчас в теме
(17) Некую подсказку тебе уже дали в (8)
Ну или просто посмотри, что реально хранится в ТЧ Контактная информация в нормально заполненных объектах.
19. barankov_vv 07.10.24 18:56 Сейчас в теме
(18) Обработка "Групповое изменение реквизитов" по определению предназначена для изменения реквизитов элементов справочника и их табличных частей. Я просто пользуюсь функционалом этой обработки и не могу понять решение обозначенной проблемы (в 15 я уже даже в картинках показал проблему).
Зачем мне отказываться от этой разработки и использовать БСП? Это же другой способ изменения табличных частей справочников.
20. user2107184 07.10.24 18:59 Сейчас в теме
(19) Ты сам с собой разговариваешь? Используй обработку, кто тебе мешает? Но информацию о том ЧТО И КАК заполнять в КИ - вполне себе можешь посмотреть в БСП. Тебе уже и модуль и метод нарисовали.
21. barankov_vv 07.10.24 19:59 Сейчас в теме
(20) Надеюсь на помощь специалистов, обращаюсь к ним.
Для пробы внутри обработки "Групповая обработка реквизитов" запускаю следующий код:
==========================================================
Объект.КонтактнаяИнформация.Добавить();
ТелефонСтруктура = Новый Структура;
ТелефонСтруктура.Вставить("Представление", "+7 (123) 456-78-95");
ТелефонСтруктура.Вставить("Комментарий", "тестовый номер 2");
ТелефонСтруктура.Вставить("КодСтраны", "7");
ТелефонСтруктура.Вставить("КодГорода", "123");
ТелефонСтруктура.Вставить("НомерТелефона", "456-78-95");
ТелефонXML = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(ТелефонСтруктура,"", Перечисления.ТипыКонтактнойИнформации.Телефон);
ТелефонJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ТелефонXML);
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(Объект, ТелефонJSON, Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента, ТекущаяДата(), Истина);
Объект.Записать();
============================================================­======================
Ошибок при выполнении нет. Результат такой же - ничего не меняется
Подозреваю, что УправлениеКонтактнойИнформацией должно крутиться на сервере, а обработка крутится на клиенте.
22. PowerBoy 3416 08.10.24 07:44 Сейчас в теме
(21)
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(Объект, "123", Справочники.ВидыКонтактнойИнформации.ТелефонИнформационнойКарты, ТекущаяДата(), Истина);
23. nomad_irk 76 08.10.24 08:10 Сейчас в теме
(21) Просто вдумчиво прочитайте код:
Прикрепленные файлы:
SlavaKron; user2033930; +2 Ответить
24. barankov_vv 08.10.24 10:42 Сейчас в теме
(23) Спасибо за подсказку, проверю на примере Справочника Информационные карты
25. barankov_vv 08.10.24 12:56 Сейчас в теме
Окончательное решение по добавлению номера телефона в Информационную карту через Групповую обработку реквизитов (спасибо nomad_irk - сообщение 23):
============================================================­==================
Объект.КонтактнаяИнформация.Очистить();
ВидКИТелефон = Справочники.ВидыКонтактнойИнформации.ТелефонИнформационнойКарты;
СтрокаКИ = Объект.КонтактнаяИнформация.Добавить();
СтрокаКИ.Вид = ВидКИТелефон;
СтрокаКИ.Тип = ВидКИТелефон.Тип;
СтрокаКИ.НомерТелефона = "1234567890";
СтрокаКИ.Представление = "1234567890";
Объект.Записать();
Прикрепленные файлы:
26. user2033930 08.10.24 13:35 Сейчас в теме
Остался открытым вопрос - а нахрена вообще использовать групповую обработку для внесения одинакового номера телефона разным картам? Что за бизнес-процесс такой интересный?
27. SlavaKron 08.10.24 14:19 Сейчас в теме
(26) Может быть, пользуясь служебным положением, он хочет оформить супер-скидку? Думаю, не стоит вскрывать эту тему.
28. nomad_irk 76 08.10.24 14:22 Сейчас в теме
(27) Когда человек ставит "лайк" на своем сообщении, а не на том, с которого он взял идею - многое говорит об этом человеке, как по-мне :)
user2033930; +1 Ответить
29. SlavaKron 08.10.24 14:33 Сейчас в теме
(28) Мелочь, а не приятно)
Я так и не понял, почему БСП не сработал.
30. nomad_irk 76 08.10.24 14:44 Сейчас в теме
(29) Под капот обработки не лазил, возможно, Объект имеет тип ДанныеФормыСтруктура, потому как со СправочникОбъект/СправочникСсылка оно работает различая типы.
31. barankov_vv 09.10.24 09:57 Сейчас в теме
(28) Прошу прощения, исправил лайк, если это принципиально. Просто исходная проблема была на примере справочника Информационные карты, а не Физические лица. Как бы ответ на исходный вопрос, а не на соседний.
Когда программист ложится спать, он на тумбочку ставит два стакана: один с водой, если захочет пить, второй пустой, если не захочет пить.
34. nomad_irk 76 09.10.24 10:34 Сейчас в теме
(31)
исправил лайк, если это принципиально

Нет, вообще не принципиально.
Просто исходная проблема была на примере справочника Информационные карты, а не Физические лица. Как бы ответ на исходный вопрос, а не на соседний.

Лично у меня нет под рукой конфигурации, имеющей справочник Информационные карты, я показал принцип/подход, т.к. он одинаковый для любых объектов типовых конфигураций, будь то Информационные карты или Физические Лица и ценна именно сама идея, а не какая-то конкретная её реализация.
Патентное право защищает именно идеи, а не их реализации.
33. barankov_vv 09.10.24 10:24 Сейчас в теме
(28)
Когда человек ставит "лайк" на своем сообщении, а не на том, с которого он взял идею - многое говорит об этом человеке, как по-мне :)

Еще раз извиняюсь, если обидел.
На самом деле я не тщеславный и не обидчивый. Даже на такие высказывания не обижаюсь:
"Ну и за сам алгоритм надо отбирать клавиатуру, конечно.
Позови-ка лучше программиста. А сам не подходи больше к обработке данных, а то такого с данными натворишь - в тюрьму еще посадят потом..."
"Он же не программист - откуда ему знать про БСП..."
Копаюсь в потрохах 1С с 1995 года начинал с 5-той версии (DOS версия), лично встречался с разработчиком Сергеем Нуралиевым (до сих пор руку не мою, когда поздоровались :-)
36. user2033930 09.10.24 10:52 Сейчас в теме
(33)
Копаюсь в потрохах 1С с 1995 года начинал с 5-той версии (DOS версия)
Копаться в потрохах и программировать - как бы разные вещи. В данном случае по первым строкам кода сразу все стало видно.
Это как на экзамене на сдаче вождения:
- Мэм, вы не сдали экзамен, выходите из машины.
- Офицер, но как вы можете знать, я же только в неё села!
- Совершенно верно, мэм. Вы сели на заднее пассажирское сиденье.

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

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

Отсюда и вся возня.
38. SlavaKron 09.10.24 12:50 Сейчас в теме
Скачал последнюю Розницу: нет там КИ в дисконтных картах.
Прикрепленные файлы:
39. nomad_irk 76 09.10.24 12:52 Сейчас в теме
(38) а справочник Информационные Карты существует?
40. user2107184 09.10.24 12:54 Сейчас в теме
(39) В Рознице 2.3 - да. В 3.0 - нет.
41. nomad_irk 76 09.10.24 12:55 Сейчас в теме
(40) дедуктивым методом определили версию конфигурации. Прелестно, ящетаю :)
42. SlavaKron 09.10.24 13:01 Сейчас в теме
(40)
В 3.0 - нет.
Тогда удаляю 3.0, зачем такая конфигурация, в которой нет КИ в информационных кратах.
nomad_irk; +1 Ответить
43. barankov_vv 10.10.24 10:16 Сейчас в теме
(38) Приветствую дотошных специалистов по 1С!
Не знал, что нужны подробности, приводящие обычно в бешенство (поговорка моего научного руководителя в молодости).
Привожу скриншоты версии 1С Розница (существует куча подверсий 1С розница).
В моем случае это 1С Розница.Магазин одежды и обуви.
Фирма Рарус берет Розницу и переделывает в Магазин одежды и обуви.
В последнее время Рарус обнаглел. Раньше было имея подписку ИТС, был доступ к обновлениям почти всех версий разработок 1С. А теперь Рарус дает доступ к обновлениям своих разработок по отдельной ИТС с ними, т.е. мы теперь оплачиваем два ИТС (для Бухгалтерии и Зарплаты один ИТС, для Розница.Магазин одежды и обуви другой ИТС).
Прикрепленные файлы:
Оставьте свое сообщение

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