В данной статье мы рассмотрим, как можно изменить реквизиты сразу у нескольких элементов какого-либо документа или справочника. В качестве примера все действия будут производиться на демо-базе 1С 8.3 Бухгалтерия 3.0.
Такие ситуации встречаются довольно часто, а причин их множество. Только представьте, насколько неудобно и трудозатратно было бы совершать данную операцию для каждого документа по отдельности.
В программе 1С 8.3 (на управляемых формах) существуют два основных способа групповой обработки справочников и документов:
- из формы списка;
- при помощи стандартной обработки.
Первый способ достаточно прост, и любой пользователь без труда с ним справится. Второй же предназначен для администраторов и имеет гораздо больший функционал, например, изменение реквизитов в табличных частях.
Давайте начнем от простого к сложному. Рассмотрим как пользоваться обработкой в первом варианте.
Содержание
- Изменение справочников и документов из формы списка
- Стандартная обработка «Групповое изменение реквизитов»
- Введение новых значений
- С помощью произвольного алгоритма
Изменение справочников и документов из формы списка
Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!
Предположим, в нашем примере нам нужно изменить ставку НДС сразу у нескольких номенклатурных позиций одноименного справочника. Для этого нам необходимо открыть его форму списка.
Выделите те позиции, которые должны подвергнуться изменению. Это можно сделать левой кнопкой мыши и зажатой клавишей на клавиатуре «Ctrl» или «Shift». Если все элементы идут подряд, то их можно выделить не мышкой, а стрелками вверх и вниз на клавиатуре.
Не снимая выделения, нажмите по одному из элементов правой кнопкой мыши и выберите пункт «Изменить выделенные» в появившемся контекстном меню.
Далее перед вами откроется окно, в левом верхнем углу которого будет отображаться, сколько элементов подлежит изменению. В табличной части ниже укажите, какие реквизиты нужно изменить, и какое значение им задать. В нашем случае мы установим у всех номенклатурных позиций в поле «% НДС» — «Без НДС».
Так же, данная обработка позволяет изменять не только несколько элементов одновременно, но и несколько групп со всеми подчиненными элементами. Для этого в форме настройки реквизитов нажмите на кнопку «Дополнительные параметры» и в открывшемся окне установите флаг в пункте «Обрабатывать дочерние элементы».
После того, как вы установили все нужные настройки, нажмите в форме указания реквизитов на кнопку «Изменить реквизиты». При большом количестве изменяемых данных, выполнение данной операции моет занять длительное время. По завершению программа выдаст соответствующее уведомление.
Теперь в той же форме списка мы видим, что процент НДС изменился во всех выделенных нами позициях.
Стандартная обработка «Групповое изменение реквизитов»
Несомненно, описанный выше способ очень прост в использовании и не требует особых навыков и прав доступа у пользователя, но, к сожалению, он не всегда может быть применим. Тогда на помощь приходит стандартная обработка, которая расположена в разделе «Администрирование» — «Поддержка и обслуживание». Так же вы можете ее найти в обработках через меню «Все функции».
Перед вами откроется форма самой обработки. В верхнем поле «Изменять» мы выберем документы «Реализация (акты, накладные)». Правее появится гиперссылка «Все элементы». Нажав на нее можно настроить отбор для выбора не всех документов, а лишь части по какому-то критерию.
В открывшейся форме отбора укажем, что нас нужны только документы с декабря прошлого года. Это можно сделать в верхнем поле окна. Отборов может быть сколько угодно. В нижней же его части динамически отбираются те документы, которые соответствуют указанному отбору. В нашем случае будет обрабатываться всего 56 документов.
Теперь нам нужно указать, какие данные и чем мы будем заменять. Обработка позволяет редактировать не только реквизиты шапки, но и табличные части. Они размещены в качестве вкладок на форме обработки.
Введение новых значений
Данная обработка позволяет, как жестко задавать значения реквизитов, так и использовать гибкие алгоритмы. В первом случае все намного проще. Этот режим установлен по умолчанию при открытии обработки и может переключаться соответствующей кнопкой.
Для простоты примера мы будем устанавливать везде в качестве склада «Основной склад». После внесения всех изменений, нажмите на кнопку «Изменить реквизиты».
При нажатии на кнопку «Дополнительные параметры» вы можете немного расширить возможность настроек изменения реквизитов, например, изменять служебные реквизиты.
С помощью произвольного алгоритма
Данный режим более гибкий, чем предыдущий, но тут не обойтись без базовых навыков в программировании. Включить его можно, нажав на кнопку «Выполнить произвольный алгоритм».
В левой части обработки нужно описать сам алгоритм, а в правой ее части для удобства расположены реквизиты нашего документа.
В нижней части формы вы можете указать, записывается изменяемый вами объект автоматически, либо данное условие будет указано в вашем алгоритме. Так же вы можете отключить использование безопасного режима при выполнении группового изменения реквизитов.
Содержание:
1. Как пользоваться обработкой для группового изменения данных в системе 1С 8.3
Сегодня мы рассмотрим, как пользоваться обработкой для группового изменения данных в системе 1С 8.3. Она называется «Универсальный подбор и обработка объектов».
Демонстрация будет проведена в демонстрационной базе конфигурации УТ 11. В других конфигурациях, таких как БП 3.0, ЗУП 3.0, КА 2.0, ERP 2.0 и 2.1 все будет происходить абсолютно аналогично.
1. Начало работы с обработкой
2. Настройки отбора
3. Обработки
4. Установка реквизитов
5. Отменить проведение документов и провести документы
6. Перенумерация
7. Произвольный алгоритм
2. Выполнение универсального подбора и обработки объектов в 1С
Открывается обработка следующим образом:
Нажимаем треугольник, расположенный в левом верхнем углу, выбираем файл, открыть.
Начало работы УТ 11
Выбираем файл в открывшемся окне, которое имеет отношение к установленной операционной системе.
Файл с обработкой в УТ 11
Универсальный подбор и обработка объектов
В открывшемся окне обработки в 1С:УТ в верхнем поле выбирается объект для поиска. То есть система просит нас выбрать тот идентификатор объект метаданных, который мы хотим изменить.
Для примера выберем документ: Реализация товаров и услуг.
Реализация товаров и услуг
3. Как сделать дополнительные настройки отбора
Настройки отбора производятся в обработке.
Настройка отбора в 1С
Они нужны в том случае, если нам необходимо работать не со всей выборкой, а с какими-то конкретными документами.
Укажем в настройках, что нас интересуют только проведенные документы.
Настройка отбора в 1С (реализация товаров и услуг)
Проведенные документы
Выберем реквизит «Проведен». Для этого в открывающемся списке раскроем поле объект, где и будет находиться нужный нам реквизит
Реквизит «Проведен»
Открытие нужного реквизита
Для реквизита установим вид сравнения «равно» и значение «да».
Вид сравнения в 1С
Затем нажимаем кнопку «Применить».
Таким образом мы установили настройки отбора только для проведенных документов.
Теперь, для того, чтобы отобрались все проведенные документы реализации, нужно нажать кнопку: «Найти ссылки»
Отобранные проведенные документы
Система отобрала все проведенные документы. В крайней левой колонке каждый документ отмечен флагом, что говорит о том, что мы будем работать со всей выборкой. Можно снять флаги с ненужных документов таким образом исключив их из выборки.
4. Групповая установка реквизитов и обработка объектов системы в 1С
Допустим, мы будем обрабатывать все документы. Для этого, перейдем на вторую вкладку, которая называется: «Обработки»
Обработки в 1С ERP
Здесь можно обработать объекты системы в 1С с помощью произвольного алгоритма, произвести установку реквизитов и задать значения для любого реквизита. В качестве примера возьмем реквизит «Склад».
Установка реквизитов
Установка реквизитов «Склады и магазины»
Выберем случайные значения для этого реквизита
Выбирается значение реквизита
И выполним команду.
Установка реквизитов
Завершение обработки
Результаты отбора обработки в УТ 11 можно увидеть на вкладке «Найденные объекты», где каждый объект будет иметь значение реквизита Склад выбранное нами ранее.
Результат отбора обработки в УТ 11
Реализация товаров и услуг в УТ 11
Групповая установка реквизитов
Так работает групповая установка реквизитов.
5. Отмена проведения документов
С помощью следующей обработки в 1С:УТ 11 можно отменить проведение документов. Для этого нужно на вкладке «Обработки» выбрать обработку: отменить проведение документов.
Выполнение отмены проведения документов
Загрузка выполнения: отмены проведения документов
Завершение обработки: отмены проведения документов
После выполнения необходимых действий можно увидеть результат работы обработки в УТ 11. Для всех выбранных документов проведение было отменено.
Результат работы обработки в УТ 11
Заново провести отмеченные документы можно при помощи обработки: Провести документы. Она действует абсолютно идентично предыдущей.
Проведение отмеченных документов
Перепровести документы
Практически это можно применить в случае, когда необходимо перепровести документы по определенному отбору. При такой постановке задачи, стоит настроить отбор, так же как настраивался отбор по складу, а затем выбрать обработку провести документы. Стоит отметить, что в отбор можно добавить больше одного условия.
6. Работа механизма перенумерации на примере справочника: Номенклатура
Теперь рассмотрим работу механизма перенумерации в 1С на примере справочника: Номенклатура.
Выберем объектом поиска нужный справочник
Работа механизма перенумерации в 1С
Переходя в настройки отбора в 1С стоит обратить внимание, что при смене объекта поиска настройки отбора исчезают.
Переход в настройки отбора
Я хочу применить перенумерацию ко всему справочнику. Для этого нажимаю кнопку найти ссылки и получаю такой результат:
Применение перенумерации
Перейдя на вкладку «Обработки», выберем пункт «Перенумерация объектов».
Перенумерация объектов
В открывшемся окне необходимо будет указать начальный номер. Допустим, это будет номер 1.
Начальный номер
Ниже предлагается выбор вариантов действий с префиксами в УТ 11. Допустим, нам нужно удалить все префиксы. Для этого выполним следующие действия: Выберем пункт «Заменить префиксы на введенную строку» оставив строку префикса пустой и выполним команду.
Варианты действий с префиксами в УТ 11
Заменить префиксы в 1С 8.3 на введенную строку
Чтобы проверить, выполнилась команда или нет, откроем справочник «Номенклатура»
Справочник: Номенклатура
Как можно заметить, в реквизите «Код» префиксов нет. Теперь добавим любой префикс.
Возвращаемся к обработке: Перенумерация объектов и добавим префикс «ТЕСТ».
Префикс «ТЕСТ»
Выполнив команду снова открываем справочник «Номенклатура»
Справочник Номенклатура
Префикс установлен.
Остальные пункты в наборе действий работают похоже и интуитивно понятны.
7. Как пользоваться произвольным алгоритмом
Теперь рассмотрим, как пользоваться произвольным алгоритмом.
Этот механизм очень удобен, при условии наличия начальных навыков программирования на языке 1С. С помощью него можно выполнить практически любые действия с объектами системы в 1С. К примеру, так как мы сейчас работаем со справочником Номенклатура, давайте изменим комментарий к элементу справочника.
Для выполнения этих действий снова придется воспользоваться настройкой отбора. С ее помощью исключим из выдачи группы элементов, так как для групп реквизит комментарий не доступен.
Настройка отбора в 1С
Теперь откроем обработку: Произвольный алгоритм
И запишем следующую конструкцию:
Обработка произвольный алгоритм
Выполнение этой команды приведет нас к следующему результату:
Результат произвольного алгоритма
Специалист компании «Кодерлайн»
Ярослав Копытов
Изменение дополнительных реквизитов справочника при помощи обработки «Групповое изменение реквизито»
Автор arch_vector, 18 дек 2018, 12:01
0 Пользователей и 1 гость просматривают эту тему.
Доброе время суток!
Подскажите, пожалуйста, как правильно сделать.
Нужно при помощи обработки «Групповое изменение реквизитов» в режиме «Выполнить произвольны алгоритм» скопировать значение одного дополнительного реквизита в другой.
Например
Объект.ДополнительныеРеквизиты.НазваниеРеквизита = Объект.ДополнительныеРеквизиты.НазваниеДругогоРеквизита
Запускаю обработку, выдает ошибку «Поле объекта не обнаружено (НазваниеРеквизита)»
Реквизит точно есть, его видно в списке доступных реквизитов.
1С:Предприятие 8.3 (8.3.11.3034)
Розница, редакция 2.2 (2.2.7.40)
Начнем по порядку Что из себя представляют дополнительные реквизиты?
нужно творчески переработать:
ПерваяСтрока = Объект.ДополнительныеРеквизиты.Найти("НазваниеРеквизита","Свойство");
ВтрораяСтрока = Объект.ДополнительныеРеквизиты.Найти("НазваниеДругогоРеквизита","Свойство");
ПерваяСтрока.Значение = ВтрораяСтрока.Значение;
Спасибо за Сказать спасибо
Цитата: alex0402 от 18 дек 2018, 12:40
нужно творчески переработать:ПерваяСтрока = Объект.ДополнительныеРеквизиты.Найти("НазваниеРеквизита","Свойство");
ВтрораяСтрока = Объект.ДополнительныеРеквизиты.Найти("НазваниеДругогоРеквизита","Свойство");
ПерваяСтрока.Значение = ВтрораяСтрока.Значение;
Cпасибо за ответ! Буду пробовать.
Добавлено: 20 дек 2018, 08:42
Цитата: antoneus от 18 дек 2018, 12:36
Начнем по порядку Что из себя представляют дополнительные реквизиты?
Например, у справочника Номенклатура, есть реквизит «Наименование» или «Полное наименование». Это основные реквизиты, предусмотренные платформой. А можно настроить дополнительные. Кнопка «Еще» -> «Изменить состав дополнительных реквизитов»
Это понятно) Но что они из себя представляют на уровне конфигурации? Сдается мне, что это табличная часть справочника, которая так и называется «ДополнительныеРеквизиты». Вот и работать с ними нужно как с табличной частью.
Цитата: arch_vector от 22 дек 2018, 10:10Попробовал. Выдает ошибку «Значение не является значением объектного типа (Значение)»
Варианта два:
1) я ошибся в структуре данных и нет такой колонки Значение, проверяйте.
2) нет строки, где свойство = Производитель и поиск возвращает Неопределено
Спасибо за Сказать спасибо
Групповое изменение реквизитов |
Я |
21.01.21 — 11:59
Есть какая-нибудь типовая обработка, в которой можно отобрать нужные документы и написать что-то типа СчетФактураВыданная.Номер = ДокументОснование.Номер ?
1 — 21.01.21 — 12:01
есть
2 — 21.01.21 — 12:01
devtools.ucoz.net
если в адресе не наврал…
3 — 21.01.21 — 12:02
А типовое уже не катит?
4 — 21.01.21 — 12:02
(2) но это не типовая, а универсальная )))
5 — 21.01.21 — 12:04
(4) типа универсальная ))
6 — 21.01.21 — 12:05
(5) что значит типа?
еще не встречал конфы на которой поделки ТормозаИТ не работают
7 — 21.01.21 — 12:08
(6) Типовая универсальная.
А ты запусти её на ТиС8 )))
8 — 21.01.21 — 12:08
А где там что искать… и это платные, да ?
9 — 21.01.21 — 12:09
(7) wtf ТиС8?
10 — 21.01.21 — 12:09
(8) Нет. Там всё бесплатно
И даже кнпочки доната не видел )))
11 — 21.01.21 — 12:09
(9) Торговля и Склад. 8я.
12 — 21.01.21 — 12:11
(10) Мне бы обработку просто скачать, а не расширение, в типовой «Групповое изменение реквизитов» нет в доступных полях ДокументОснование.Номер
13 — 21.01.21 — 13:31
я не понимаю почему у меня не получается, запросом получаю документы в которых нужно сделать док.номер = докоснование.номер создаю кнопку
наклиенте
насерверебезконтекста пишу запрос + обход но отладкой туда попасть не могу, после НаКлиенте просто в предприятие кидает отладка завершается
это значит отладка на сервере не запущена или что ещё ?
14 — 21.01.21 — 13:32
(13) да
15 — 21.01.21 — 13:33
(14) а без рестарта службы никак не запустить? в реестре прописал -дебаг
16 — 21.01.21 — 13:34
(15) Нет.
17 — 21.01.21 — 13:54
(16) всё спасибо большое с отладкой проще стало))))
18 — 21.01.21 — 14:14
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| СчетФактураВыданный.Ссылка КАК Ссылка,
| СчетФактураВыданный.ДокументОснование.Номер КАК ДокументОснованиеНомер,
| СчетФактураВыданный.Номер КАК Номер
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Дата МЕЖДУ &Дата И &Дата1
| И СчетФактураВыданный.ПометкаУдаления = ЛОЖЬ
| И СчетФактураВыданный.Проведен»;
Запрос.УстановитьПараметр(«Дата», ‘20201001’);
Запрос.УстановитьПараметр(«Дата1»,’20201231′);
Результат = Запрос.Выполнить().Выгрузить();
Для каждого А из Результат Цикл
А.Номер = А.ДокументОснованиеНомер;
А.Ссылка.Записать();
КонецЦикла;
сильно не бейте, учусь, как записывать?
метод объекта не обнаружен (записать)
19 — 21.01.21 — 14:15
У ссылки нет метода Записать()
Не тебе ли я вчера писал про это?
20 — 21.01.21 — 14:16
(19) ну я это уже понял, поэтому спрашиваю как записать
не мне или нет)
21 — 21.01.21 — 14:24
(12) Это табличная часть
22 — 21.01.21 — 14:25
(21) с чего номер это табличная часть?
ну и вопрос уже другой
Как записать документ по ссылки
23 — 21.01.21 — 14:25
(20) нужно получить объект по ссылке, а затем записать
24 — 21.01.21 — 14:28
(23) в цикле получать ?
25 — 21.01.21 — 14:30
Результат = Запрос.Выполнить().Выгрузить();
Для каждого А из Результат Цикл
А.Номер = А.ДокументОснованиеНомер;
ОбДокумент=А.Ссылка.ПолучитьОбъект();
ОбДокумент.Записать();
КонецЦикла;
26 — 21.01.21 — 14:30
(22) С того докОснование храниться в ТЧ, а не в шапки. Иначе как по твоему реализовано 1 фактура на несколько документов
27 — 21.01.21 — 14:31
(26) я неправильно понял, сори
28 — 21.01.21 — 14:36
(25) почему не записывает ?
29 — 21.01.21 — 14:42
скорей всего в методе записать не хватает параметров
30 — 21.01.21 — 14:43
(29) там же нет обзятельных
31 — 21.01.21 — 14:48
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| СчетФактураВыданный.Ссылка КАК Ссылка,
| СчетФактураВыданный.ДокументОснование.Номер КАК ДокументОснованиеНомер,
| СчетФактураВыданный.Номер КАК Номер
|ИЗ
| Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
| СчетФактураВыданный.Дата МЕЖДУ &Дата И &Дата1
| И СчетФактураВыданный.ПометкаУдаления = ЛОЖЬ
| И СчетФактураВыданный.Проведен»;
Запрос.УстановитьПараметр(«Дата», ‘20201001’);
Запрос.УстановитьПараметр(«Дата1»,’20201231′);
Результат = Запрос.Выполнить().Выгрузить();
Для каждого А из Результат Цикл
ОбДокумент=А.Ссылка.ПолучитьОбъект();
А.Номер = А.ДокументОснованиеНомер;
ОбДокумент.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;
так тож не
32 — 21.01.21 — 14:51
Я что-то не так делаю ?
33 — 21.01.21 — 15:01
Взял из примеров, там так же делается и всё ок
34 — 21.01.21 — 15:04
МОжет мне проще как то из номеров типа 0P000900 делать » 0P900″ ?
35 — 21.01.21 — 15:07
(31)
// А.Номер = А.ДокументОснованиеНомер;
ОбДокумент.Номер = …..
36 — 21.01.21 — 15:12
(35) СПАСИБО БОЛЬШОЕ
37 — 21.01.21 — 15:53
(2) Наврал таки. Уже начал забывать )
http://devtool1c.ucoz.ru
38 — 22.01.21 — 04:49
В типовой групповой обработке есть выполнение произвольного алгоритма.
39 — 22.01.21 — 05:42
(37) А я никогда и не помнил… гугель у нас на что?
dvrk
40 — 22.01.21 — 06:31
(38) у меня произвольный алгоритм не сработал, примера не нашел