Обработка регистров сведений

Опубликовал Valerich в раздел Обработки - Обработка справочников

Обработка предназначена для обработки данных регистров сведений.
С ее помощью можно удалить записи, изменить значения реквизитов, выполнить произвольный код для каждой обрабатываемой записи.
РС, подчиненные регистратору не обрабатываются.

Для скачивания доступны варианты для обычных форм и для управляемых форм - 2 разных файла.

Перепробовал несколько универсальных и не очень обработок для работы с РС, но ни одна не позволяла выполнить те операции, которые мне были нужны. В результате написал свою по подобию универсального подбора и обработки объектов.

Отличительные (на мой взгляд) особенности:

  • для подбора обрабатываемых записей в варианте обычных форм применяется построитель отчетов, в варианте управляемых форм - СКД, что дает возможность очень гибко настраивать отбор записей;
  • учитывается тот факт, что регистр может быть периодическим;
  • при изменении записей (даже если изменяются измерения) не происходит "задваивания" записей (т.е. не остаются записи со старым набором значений измерений).

 

В общем и целом не претендую на оригинальность и гениальность. Как и любая другая программа, эта скорее всего не лишена недостатков и ошибок. Поэтому применение на Ваш страх и риск. Рекомендую перед боевым использованием потренироваться на копии или сделать страховую копию.

 

Обновление от 21.04.2011

  • исправлена ошибка - не обрабатывался вариант с выполнением произвольного кода;
  • в поле ввода произвольного алгоритма сделал вывод комментария, в котором написано через какую переменную можно обращаться к записи.

Обновление от 14.12.2014

  • добавлен вариант обработки для работы в УФ. Ее так же можно подключить к дополнительным внешним обработкам в конфигурациях, использующих БСП. В режиме тонкого клиента не работают некоторые фишки в СКД (выбор свойств полей для возможностей отбора - через точку) + при изменении регистра не всегда после этого корректно работает отбор (можно закрыть и открыть снова).

 

 

Обновление от 16.02.2016

  • исправлен вариант обработки для работы в УФ. Если реквизит или ресурс имел тип "Хранилище значение", происходила ошибка

Обновление от 29.04.2016

  • исправлен вариант обработки для работы в УФ: теперь все должно корректно работать и в тонком клиенте

Файлы

Наименование Файл Дата Размер Кол. Скачив.
ОбработкаРС
.epf 21,43Kb
30.08.14
1151
.epf 30.08.14 21,43Kb 1151 Скачать
ОбработкаРС_УФ
.epf 17,01Kb
29.04.16
145
.epf 29.04.16 17,01Kb 145 Скачать

См. также

Лучшие комментарии

5. poZZitive (файл скачал) 21.10.2009 13:57
Абалденная вещь. Лучшая из найденных (бесплатных)
Ответили: (11)
+ 1 [ grigr; ]
# Ответить
53. White_and_Fluffy (файл скачал) 16.02.2016 02:28
На УФ не читает регистр "ПрисоединенныеФайлы"
Ответили: (54)
+ 1 [ Valerich; ]
# Ответить
7. pri_hod (файл скачал) 08.01.2010 02:25
Исправь ошибку

ИначеЕсли ДействиеУдалить = 1 Тогда //Нужно "2"
// выполнение алгоритма

За обработку +
Ответили: (11) (14)
+ 1 [ Valerich; ]
# Ответить

Комментарии

1. MRAK 10.10.2009 19:01
плюсану авансом... позже гляну... делал как-то такую, тока без построителя... хотя по мне, лучше сюда СКД замутить...
Ответили: (2)
# Ответить
2. Валерыч (файл скачал) 12.10.2009 09:04
(1) если обоснуете чем СКД для отбора круче построителя, замучу СКД :)
Ответили: (13)
# Ответить
3. I_G_O_R 12.10.2009 09:32
можно вот такие отборы делать:

Прикрепленные файлы:

Screenshot.JPG
# Ответить
4. artbear (файл скачал) 12.10.2009 09:58
(3+) Точнее, можно делать даже группы отборов с условиями И, ИЛИ и т.д.
# Ответить
5. poZZitive (файл скачал) 21.10.2009 13:57
Абалденная вещь. Лучшая из найденных (бесплатных)
Ответили: (11)
+ 1 [ grigr; ]
# Ответить
6. dosen (файл скачал) 13.11.2009 20:42
Спасибо, ибо ................................ (почему сам не сделал, каждый добавит или придумает ) :D
Ответили: (11)
# Ответить
7. pri_hod (файл скачал) 08.01.2010 02:25
Исправь ошибку

ИначеЕсли ДействиеУдалить = 1 Тогда //Нужно "2"
// выполнение алгоритма

За обработку +
Ответили: (11) (14)
+ 1 [ Valerich; ]
# Ответить
8. Leoway (файл скачал) 10.06.2010 10:41
Спасибо огромное
Ответили: (11)
# Ответить
9. erderugina (файл скачал) 17.08.2010 13:07
Благодарю. Обработка помогла.
Ответили: (11)
# Ответить
10. Алексей-29 (файл скачал) 28.09.2010 13:34
Обработка отличная. Давно искал такую. :)
Ответили: (11)
# Ответить
11. Valerich (файл скачал) 29.09.2010 01:48
(7) а почему нужно 2? где ошибается и на чем?

(5), (6), (7), (8), (9), (10). Вам всем спасибо за время , которое Вы потратили, чтобы выразить свое мнение.

Ваше мнение всегда очень важно для меня.
# Ответить
12. pri_hod (файл скачал) 29.09.2010 02:00
ну не логично же

Если ДействиеУдалить = 0 Тогда

// удаление записей
ОбработаноЗаписей = 0;
УдалитьЗаписи(ТаблицаРезультат, ОбработаноЗаписей);
Предупреждение("Обработано " + ОбработаноЗаписей + " зап.", 15);
ИначеЕсли ДействиеУдалить = 1 Тогда
//Изменение записей
ОбработаноЗаписей = 0;
ИзменитьЗаписи(ТаблицаРезультат, Реквизиты, ОбработаноЗаписей);
Предупреждение("Обработано " + ОбработаноЗаписей + " зап.", 15);
ВыполнитьОтбор(); // заново считаем набор
ИначеЕсли ДействиеУдалить = 1 Тогда
// выполнение алгоритма
ТекстАлгоритма = ЭлементыФормы.ТекстПроизвольногоАлгоритма.ПолучитьВыделенныйТекст();
Если СтрДлина(ТекстАлгоритма) = 0 Тогда
ТекстАлгоритма = ЭлементыФормы.ТекстПроизвольногоАлгоритма.ПолучитьТекст();
КонецЕсли;
ОбработаноЗаписей = 0;
ВыполнитьАлгоритм(ТаблицаРезультат, ТекстАлгоритма, ОбработаноЗаписей);
Предупреждение("Обработано " + ОбработаноЗаписей + " зап.", 15);
ВыполнитьОтбор(); // заново считаем набор
КонецЕсли;
Ответили: (14)
# Ответить
13. Збянтэжаны Саўка (файл скачал) 21.04.2011 17:22
(11) Как правильно замечено в (7) и (12) Вариант:

ИначеЕсли ДействиеУдалить = 1 Тогда

повторяется дважды, т.е. 3-й вариант (ДействиеУдалить = 2) не сработает, нужно исправить

Очень ценю Ваши статьи и обработки, потому считаю данную ошибку мелкой опиской!
Ответили: (14)
# Ответить
14. Valerich (файл скачал) 21.04.2011 17:56
(7), (12), (13)

Проверил, действительно опечатка вышла. Спасибо, коллеги.
Исправил, прикрутил фантик.

Пользуйтесь на здоровье
# Ответить
15. artbear (файл скачал) 11.08.2011 10:09
(0) Ошибка в обработке исключений при попытке записи неверных данных в регистр сведений
Вместо
				Исключение
					Сообщить("Строка таблицы " + СтрокаТаблицы.НомерСтроки + ": ошибка изменения записи " + ОписаниеОшибки());
				КонецПопытки;

Правильно писать
				Исключение
					Сообщить("Строка таблицы " + СтрокаТаблицы.Владелец().Индекс(СтрокаТаблицы) + ": ошибка изменения записи " + ОписаниеОшибки());
				КонецПопытки;
...Показать Скрыть

Иначе будет исключение и обработка остановится :(
Ответили: (16) (18)
# Ответить
16. artbear (файл скачал) 11.08.2011 11:41
(15) + Ну и вообще СтрокаТаблица.НомерСтроки там еще встречается, также нужно устранить.
Ответили: (18)
# Ответить
17. seandr (файл скачал) 03.10.2011 09:37
Все не доходили руки сделать подобное.. но сейчас с успехом использую эту обработку. Спасибо огромное...
# Ответить
18. Valerich (файл скачал) 03.10.2011 14:12
(15), (16) там же вроде как "СтрокаТаблицы" - это строка таблицы значений... или я чего-то неправильно помню ?
# Ответить
19. dmd (файл скачал) 11.10.2011 19:38
Прекрасно работает. Очень пригодилась +100500
# Ответить
20. Maranet (файл скачал) 18.10.2011 14:27
Спасибо, очень пригодилась...
# Ответить
21. vik77 (файл скачал) 20.10.2011 15:03
Спасибо, обработка очень выручила.
# Ответить
22. gusteleva (файл скачал) 04.11.2011 21:29
Обработка замечательная, автору респект!
# Ответить
23. UJF (файл скачал) 23.11.2011 15:44
Обработка реально очень полезная. Однозначно +
# Ответить
24. redgoll (файл скачал) 01.12.2011 08:57
Большое спасибо. Очень помогло. Конечно, можно и самому было регистры обработать...но на программирование время бы ушло, а так быстро и хорошо. Не раз еще выручит.
# Ответить
25. nataon 07.03.2012 14:07
Спасибо, + автору
# Ответить
26. mdzen (файл скачал) 28.03.2012 03:53
Пытаюсь выполнить код:
(Регистр сведений Штрихкоды - штрихкоду надо установить ед.измерения как у владельца базовая)

Объект.ЕдиницаИзмерения = Объект.Владелец.БазоваяЕдиницаИзмерения;
Объект.Записать(Истина);

что-то не взлетает...
Ответили: (27)
# Ответить
27. Valerich (файл скачал) 28.03.2012 05:14
(26) Не знаю какая у вас конфигурация, но, возможно, идет несовпадение типов данных. Например, "ОКЕИ" и "Единицы измерения". Проверьте.
# Ответить
28. mdzen (файл скачал) 28.03.2012 10:56
Точно, несовпадение типов...
4 утра - туплю однако ....
# Ответить
29. kuza_87 06.06.2012 05:31
Спасибо, пригодилось. Нужная в хозяйстве вещь
# Ответить
30. Adoms (файл скачал) 25.07.2012 15:43
Большое спасибо!!! ооочень пригодилась!!!
# Ответить
31. irishka77 (файл скачал) 08.11.2012 13:29
Спасибо.Использовала для приведения в порядок штатного расписания
# Ответить
32. olsy (файл скачал) 07.12.2012 12:24
Классная обработка! Давно искал, спасибо Поручику за наводку!
# Ответить
33. CaSH_2004 (файл скачал) 13.12.2012 21:11
Все замечательно! Но странно что не видно сколько записей то найдено. Это что никому не интересно сколько он чего грохнет или заменит? Или все выводят в список и смотрят что же там внизу за цифра :) Я конечно понимаю что бесплатное, но сам то как угадываеш то?

И вот еще интересно можно ли ее так универсально сделать чтобы например отобрать те записи у которых Измерение/Ресурс имеет указанный тип, например "Справочник.ДоговораКонтрагентов"? А то ведь и такие замутки встречаются, именно они создают сложность.
Если у кого идеи есть - выкладывайте, может кто и доработает.
# Ответить
34. ManyakRus (файл скачал) 27.12.2012 17:41
работает отлично :)
сделал ширину колонок не более 25
# Ответить
35. _n26__ 15.01.2013 15:07
Спасибо большое!
# Ответить
36. sanches (файл скачал) 24.01.2013 10:56
Скажите, с помощью данной обработки я смогу убрать из значений регистра пробелы?
Ответили: (37)
# Ответить
37. Valerich (файл скачал) 24.01.2013 15:13
(36) а что Вы понимаете под пробелами в регистре сведений ?
Ответили: (38)
# Ответить
38. sanches (файл скачал) 24.01.2013 15:32
(37) Конфигурация 1С Аптека.
В ней есть регистр сведений Штрихкоды, в нем есть измерение Штрихкод типа ПланВидовХарактеристик.
В самом плане видов характеристик хранятся строковые значения длиной 200 символов.
Сейчас у меня для номенклатуры штрихкоды представляют такое значение
"4607012390615       "
, из-за чего при печати этикеток выходит ошибка компоненты barcode о неверном штрихкоде. В ручную поправил несколько штрихкодов, после чего печать этикеток для них заработала. Вот, хочу исправить все значения теперь в регистре сведений.
Ответили: (39)
# Ответить
39. Valerich (файл скачал) 24.01.2013 15:37
(38) из Вашего описания проблемы я понял, что править то надо не регистр сведений, а план видов характеристик.

Теоретически эта обработка может помочь: Отобрать записи РС, где реквизит ПВХ реквизита штрихкод содержит пробел. Далее с помощью выполнения произвольного кода можно получить объект ПВХ, обрезать пробелы и записать его обратно.
Ответили: (40)
# Ответить
40. sanches (файл скачал) 24.01.2013 16:01
(39) Спасибо
# Ответить
41. ProkopyukIN 25.12.2013 16:45
старовата однако. надо бы уже модифицировать под 8.2, 8.3 и управляемое приложение
# Ответить
42. webresurs (файл скачал) 19.02.2015 14:04
Подскажите пож... а можно устранить ошибку вашей обработкой в счетах?

Ошибка в прошлых годах :"Выполните повторно регламентную операцию "Закрытие счетов 20, 23, 25, 26" за тот месяц, в котором образовалось отрицательное сальдо"
Ответили: (43)
# Ответить
43. Valerich (файл скачал) 20.02.2015 02:41
(42) тут дело не в счетах и не в регистрах сведений, а в проводках. Если у вас образовалось отрицательное сальдо на затратных счетах, то, либо как-то скорректировать вручную, либо перезакрывать соответствующий месяц с возможной пересдачей отчетности, если такое пеерзакрытие повлияет на финансовые результаты.
+ 1 [ webresurs; ]
# Ответить
44. RTesla (файл скачал) 31.03.2015 22:00
Хорошая обработка.
# Ответить
45. Ольга_tmp (файл скачал) 17.06.2015 03:46
Спасибо, отлично сработало для коррекции штрихкодов в УТ10
# Ответить
46. vanya201 (файл скачал) 20.10.2015 16:20
Поменяйте в коде (стр 310) Если НЕ СтрокаТаблицы.ПомМетка Тогда
на Если НЕ СтрокаТаблицы.Пометка Тогда
Ответили: (48)
# Ответить
47. ZyMik (файл скачал) 21.10.2015 22:12
Не работает.
21.10.2015 22:09:56
Ошибка создания источника доступных настроек компоновки данных

1С:Предприятие 8.3 (8.3.6.2332)
Система проектирования прикладных решений, редакция 1.1 (1.1.10.4)
Ответили: (49)
# Ответить
48. Valerich (файл скачал) 22.10.2015 02:10
(46) Уточните, пожалуйста, в какой версии обработки такой код и в каком модуле (формы, объекта).
# Ответить
49. Valerich (файл скачал) 22.10.2015 02:13
(47) попробуйте запустить в толстом клиенте. Кажется такая ошибка случается в тонком
# Ответить
50. bsa1968 (файл скачал) 12.11.2015 11:50
Все просто и понятно. Спасибо за работу!
Версия для "управляемого приложения" работает только в "толстом клиенте"?
Ответили: (51)
# Ответить
51. Valerich (файл скачал) 13.11.2015 04:04
(50) в толстом клиенте работает как было задумано. А в тонком наблюдаются какие-то необъяснимые спецэффекты - в отборе нельзя выбрать свойства измерений/ресурсов/реквизитов, если они являются ссылками на объекты; при смене регистра сведений вообще бывают ошибки инициализации СКД. Видимо у меня не хватает каких-то знаний и навыков для борьбы с этими багами.
# Ответить
52. Sergspectr 06.01.2016 23:08
Большое спасибо.
# Ответить
53. White_and_Fluffy (файл скачал) 16.02.2016 02:28
На УФ не читает регистр "ПрисоединенныеФайлы"
Ответили: (54)

Прикрепленные файлы:

Безымянный.png
+ 1 [ Valerich; ]
# Ответить
54. Valerich (файл скачал) 16.02.2016 08:24
(53) Исправил ошибку, обработку перезалил. Спасибо за Ваше сообщение
# Ответить
55. dj_serega 16.02.2016 12:59
Все комменты не читал.

1. На скринах нашел "ЭтаФорма". В 8.3 без режима совмести "ЭтаФорма" уже "ЭтотОбъект".
2. Как обстоят дела с модальностью и асинхронностью?
Ответили: (56)
# Ответить
56. Valerich (файл скачал) 17.02.2016 05:52
(55)
1. В 8.3 в управляемых формах не "ЭтотОбъект", а "Объект". А вот при выполнении на серере доступ к данным формы идет чере "ЭтаФорма". Вроде как все работает.
2. Модальных окон нет. Асинхронности тоже (во всяком случае пока).
Ответили: (57)
# Ответить
57. dj_serega 17.02.2016 11:50
(56) Valerich, 1.
Конфликт имен свойств

Нельзя использовать имена переменных, совпадающие с новыми свойствами, которые появились в "1С:Предприятии 8.3":

Новое свойство ЭтотОбъект в управляемых формах и общих модулях.
Новые свойства в управляемых формах:
АвтоНавигационнаяСсылка,
НавигационнаяСсылка,
ВертикальнаяПрокрутка,
ОписаниеОповещенияОЗакрытии,
ПараметрыВыбора.
Для устранения несовместимости необходимо найти переменные и реквизиты форм с такими названиями и переименовать их.

Что переименовано _____________Старое наименование _____Новое наименование
Свойство управляемой формы ____ ЭтаФорма (ThisForm) ______ ЭтотОбъект (ThisObject)

источник
Ответили: (58)
# Ответить
58. Valerich (файл скачал) 18.02.2016 06:25
(57) а я и не объявляю эти переменные, просто подсказка как можно добраться до реквизитов формы. Если используется другая версия платформы, где произошла замена, следует пользоваться новыми свойствами формы и объекта
# Ответить
59. dj_serega 01.04.2016 17:07
Неизвестная ошибка. В ЖР пусто...
Ответили: (60)

Прикрепленные файлы:

Снимок01.PNG
Снимок02.PNG
# Ответить
60. Valerich (файл скачал) 03.04.2016 06:07
(59) Попробуйте работать в толстом клиенте. В тонком клиенте многие операции с метаданными недоступны. Из-за этого и появляются такие странные ошибки.
# Ответить
61. dimaz666 (файл скачал) 20.04.2016 10:10
Платформа: 1С:Предприятие 8.3 (8.3.7.1993)
Режим: Файловый (без сжатия)
Приложение: Толстый клиент
Вариант интерфейса: Такси

Ошибки:
--------------------------------------------------------------------------------
Ошибка создания источника доступных настроек компоновки данных

Воспроизводится при удалении записей.
Ответили: (62)
# Ответить
62. Valerich (файл скачал) 21.04.2016 12:26
(61) Уточните, пожалуйста в какой момент времени происходит ошибка: в момент после нажатия на кнопку "Выполнить чтение данных регистра" или при удалении после нажатия на кнопку "Выполнить удаление"?

Если работаете в стандартной конфигурации, то прошу так же уточнить конфигурацию, релиз, имя регистра и настройки отбора. Может быть мне удастся смоделировать ситуацию. До сих пор с такой ошибкой сталкивался только в тонком клиенте, но Вы указали, что режим запуска "Толстый клиент".
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл