Изменить значения реквизитов ранее созданной номенклатуры

Имеется список excel с большим количеством товаров, в которых нужно выборочно изменить реквизиты. Рассмотрим как обработать весь список номенклатур с отбором по кодам и указанием изменяемых реквизитов.

В 1С имеется типовая обработка «Групповое изменение реквизитов», но ее недостаток в том, что в отборе нельзя указать коды номенклатур для подбора, что является актуальной проблемой, если товаров большое кол-во. Ниже рассмотрим работу с внешней обработкой «Загрузка данных из табличного документа» (чтобы скачать, см. вложение в статье ниже). Обработка позволяет вносить изменения в существующую номенклатуру, либо создавать новую.

01 Запустить обработку, выбрать «Вид справочника: Номенклатура». Появятся все реквизиты из справочника номенклатуры. На вкладке «Настройка» из этого списка нужно выбрать реквизит, по которому мы будем совершать поиск изменяемой номенклатуры, например по коду номенклатуры. Далее я указываю два реквизита, которые хочу изменить в номенклатурах. Ставим галочку «Не создавать новых элементов», если не требуется создавать номенклатуру с тем кодом или артикулом, который не будет найден в базе данных:

*Примечание: Если «Значение по умолчанию» обязательно предлагает выбрать параметр, как в моем случае «Да» или «Нет», то именно то, что мы укажем, будет загружено в реквизиты этих номенклатур. Так же, где этот выбор не обязателен, мы можем выбрать предлагаемое значение. Если ничего не выбирать, то будет загружено, то что будет указано в следующем пункте на вкладке «Табличный документ».

02 Переходим на вкладку «Табличный документ», нажимаем на кнопку «обновить», заполнится таблица с заголовками тех реквизитов, которые выбрали в пункте №1:

Остается только заполнить коды по которым будет осуществлен поиск и заполнить новые значения реквизитов, которые будем загружать в номенклатуры. На этой странице можно нажать кнопку  и выбрать заранее заполненный excel с указанными колонками или копировать данные напрямую в обработку. Теперь нажимаем «Загрузить данные» и ждем завершения обработки.

*Примечание: В пункте №1 мы указали один реквизит «Значение по умолчанию», т.к. он был заполнен на вкладке «Настройка», то не важно что мы укажем в колонке под заголовком на вкладке «Табличный документ», значение все равно будет загружаться из поля «Значение по умолчанию».

03 Получаем сообщение об успешном изменении:

В приведенном примере, в номенклатурах успешно изменены два реквизита:

Справочник «Номенклатура». Изменение значений реквизитов набор, комплект, услуга

Я
   Ly_Alena

11.11.16 — 08:17

Доброе утро!

В элементе справочника «Номенклатура» есть реквизиты набор, комплект, услуга (булево). Как поменять это значение?

  

Партнерская программа EFSOL Oblako

   mehfk

1 — 11.11.16 — 08:19

В ЗУП нет такого справочника.

   Ly_Alena

2 — 11.11.16 — 10:24

Что у всех ЗУП?

   Mauser

3 — 11.11.16 — 10:47

Нет. У меня еще есть ЗиК. Подойдет?

   Ly_Alena

4 — 11.11.16 — 11:11

УПП было бы в самый раз ) (3)

   Cyberhawk

5 — 11.11.16 — 11:13

Нужно внимательно изучить форму

   Ly_Alena

6 — 11.11.16 — 11:23

(5) на форме однозначно нет!

   Cyberhawk

7 — 11.11.16 — 11:23

(6) Что нет?

   torgm

8 — 11.11.16 — 11:23

(4) У меня уТ 10.3 можь сгодиться?

   Ly_Alena

9 — 11.11.16 — 11:39

(8) если есть справочник «Номенклатура» и знаете как изменить значение услуги в ложь то конечно сгодится

   vicof

10 — 11.11.16 — 11:46

(0) Выражовывайтесь яснее

   Ly_Alena

11 — 11.11.16 — 12:18

(10) Куда уж яснее..

В справочнике «Номенклатура» есть реквизит «Услуга», Тип «Булево». Как поменять значение этого реквизита с «истина» на «ложь»?

   vicof

12 — 11.11.16 — 12:27

(11) Мышкой тыкнуть не предлагать?

   vicof

13 — 11.11.16 — 12:28

Ну или простейшую обработку написать + понять, что происходит в документах, использующих эту номенклатуру.

   catena

14 — 11.11.16 — 12:39

Процедура ЗаполнитьПризнакиПоВидуНоменклатуры()

    Услуга   = (ВидНоменклатуры.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга);

    Набор    = (ВидНоменклатуры.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Набор);

    Комплект = (ВидНоменклатуры.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Комплект);

   h-sp

15 — 11.11.16 — 12:43

(11) если номенклатура использовалась в документах, то оно вам уже не даст изменить. Попробуйте внешней обработкой. или сначала распровести документы.

   Ly_Alena

16 — 11.11.16 — 13:37

(14) видимо использовалась потому что на попытку что-либо поменять говорит что номенклатура используется в товародвижении. (14) в курсе

   Ly_Alena

17 — 11.11.16 — 13:37

(15) спасибо. Думала что можно что-то изменить

   Ly_Alena

18 — 11.11.16 — 14:08

А все же где он меняется?

   novichok79

19 — 11.11.16 — 14:10

эээ… Достижения (опыт): 1C 8.2 с сентября 2014 года?

   Альбатрос

20 — 11.11.16 — 14:11

(18)

ОбъектНоменклатуры.Услуга = ложь;

ОбъектНоменклатуры.Записать();

  

catena

21 — 11.11.16 — 14:12

ОбъектНоменклатуры.ОбменДанными.Загрузка = Истина;

ОбъектНоменклатуры.Услуга = ложь;

ОбъектНоменклатуры.Записать();

На чтение 6 мин. Просмотров 2.6k. Опубликовано 15.12.2019

Содержание

  1. Как изменить значение реквизита документа 1С?
  2. Изменение команд формы
  3. Изменение реквизитов формы
  4. Изменение элементов формы
  5. Документы
  6. Документы в языке 1С 8.3, 8.2 (в примерах)

Как изменить значение реквизита документа 1С?

Как изменить значение реквизита документа 1С?
Часто возникает потребность изменить какое-то значение в отдельном реквизите. И не в одном документе, в в нескольких документах. Возможно использовать запрос.
Например:

В статье был рассмотрен вопрос:
Как изменить значение реквизита документа 1С?

Платформа 1С:Предприятие позволяет программно добавлять и изменять элементы управляемой формы. Разберемся для чего это может потребоваться.

Программная модификация формы может потребоваться в нескольких случаях:

  • При доработке типовых конфигураций для облегчения процедуры последующего обновления. В этом случае будет изменен только модуль формы. Модули намного проще обновлять, чем форму.
  • При реализации некоторых общих алгоритмов. Например, в подсистеме БСП «Запрет редактирования реквизитов объектов» для всех подключенных к подсистеме объектов предусмотрено программное создание кнопки для включения возможности редактирования реквизитов.
  • При реализации некоторых специфических алгоритмов. Например, в справочнике Номенклатура создаются поля для редактирования дополнительных реквизитов.

В управляемой форме можно программно добавить, изменить и удалить:

Все указанные операции возможны только на сервере.

Программное изменение формы имеет ограничения:

  • Удалить можно только программно добавленные реквизиты/команды/элементы. Нельзя программно удалить объекты, созданные в конфигураторе.
  • Нельзя назначить реквизит основным.

Изменение команд формы

Для управления составом команд у объекта УправляемаяФорма есть коллекция Команды . У коллекции есть несколько методов:

Коллекция Команды доступна как на клиенте, так и на сервере. Изменять коллекцию (методы Добавить () и Удалить () ) можно только на сервере. Искать и получать количество элементов (методы Найти () и Количество () ) можно как на клиенте, так и на сервере.

В качестве примера работы с командами формы создадим новую команду ИсторияИзменений с заголовком «История изменений…», которая будет вызвать обработчик ОтобразитьИсторию () . Создание выполняется при открытии формы.

&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
Команда = Команды . Добавить ( «ИсторияИзменений» );
Команда . Действие = «Подключаемый_ОтобразитьИсторию» ;
Команда . Заголовок = «История изменений…» ;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОтобразитьИсторию ( Команда )
// действия команды
КонецПроцедуры

Обработчик команды должен располагаться в форме и иметь директиву компиляции &НаКлиенте .

Изменение реквизитов формы

Чтение состава реквизитов формы выполняется функцией ПолучитьРеквизиты ( Путь >) , возвращающей массив типа РеквизитФормы . Параметр функции указывает путь к родительскому реквизиту (в виде строки). Если параметр опущен или указана пустая строка, возвращаются реквизиты верхнего уровня.

Изменение реквизитов выполняется методом ИзменитьРеквизиты ( ДобавляемыеРеквизиты >, УдаляемыеРеквизиты >) объекта УправляемаяФорма . В параметры ДобавляемыеРеквизиты и УдаляемыеРеквизиты передаются массивы с элементами типа РеквизитФормы .

Внимание!

Процесс изменения состава реквизитов является достаточно ресурсоемким. Фактически выполняется пересоздание формы. В связи с этим работа с реквизитами формы выполняется в пакетном режиме.

Создадим новый реквизит формы с именем Покупатель:

// Описание добавляемых реквизитов
ДобавляемыеРеквизиты = Новый Массив ;
ДобавляемыеРеквизиты . Добавить(Новый РеквизитФормы («Покупатель», Новый ОписаниеТипов ( «СправочникСсылка.Контрагенты» ), , «Клиент» ));

// Изменения состава реквизитов
ИзменитьРеквизиты ( ДобавляемыеРеквизиты );

Изменение элементов формы

Для управления составом элементов у объекта УправляемаяФорма есть коллекция Элементы . У коллекции есть несколько методов:

Коллекция Элементы доступна как на клиенте, так и на сервере. Изменять коллекцию (методы Вставить () , Добавить () , Переместить () и Удалить () ) можно только на сервере. Искать и получать количество элементов (методы Найти () и Количество () ) можно как на клиенте, так и на сервере. Элементами коллекции могут быть:

Элементам формы можно программно назначить обработчики событий. Для этих целей предназначен метод УстановитьДействие ( ИмяСобытия >, Действие >) .

Рассмотрим несколько наиболее распространенных на практике примеров работы с командами, реквизитами и элементами формы.

Добавление команды и связанной с ней кнопки:

// Создание команды
Команда = Команды . Добавить ( «ИсторияИзменений» );
Команда . Действие = «Подключаемый_ОтобразитьИсторию» ; // В форме должна быть процедура с указанным наименованием
Команда . Заголовок = «История изменений…» ;
// Создание кнопки и связь ее с командой
Элемент = Элементы . Добавить ( «ИсторияИзменений» , Тип ( «КнопкаФормы» ));
Элемент.ИмяКоманды = «ИсторияИзменений» ;

Добавление реквизита и связанного с ним поля ввода:

// Описание добавляемых реквизитов
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты . Добавить (Новый РеквизитФормы ( «Покупатель» , Новый ОписаниеТипов ( «СправочникСсылка.Контрагенты» ), , «Клиент» ));
// Изменение состава реквизитов
ИзменитьРеквизиты ( ДобавляемыеРеквизиты );
// Создание поля ввода и связь с реквизитом
Элемент = Элементы . Добавить ( «Покупатель» , Тип ( «ПолеФормы» ));
Элемент . Вид = ВидПоляФормы . ПолеВвода ;
Элемент . ПутьКДанным = «Покупатель» ;

Назначение элементу формы обработчика события:

ЭлементПокупатель . УстановитьДействие ( «ПриИзменении» , «Подключаемый_ПокупательПриИзменении» );

&НаКлиенте
Процедура Подключаемый_ПокупательПриИзменении ( Элемент )
// Действия события
КонецПроцедуры

Внимание!

Процедурам, которые устанавливаются в качестве обработчиков событий из кода с помощью метода УстановитьДействие () , рекомендуется задавать префикс Подключаемый_.

Внимание!

Скачать обработку с примерами программного поиска и изменения реквизитов, команд и элементов управляемой формы можно ЗДЕСЬ.

Остались вопросы?
Спросите в комментариях к статье.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Документы

Описание:

Документ — одно из основных понятий системы 1С:Предприятие. При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и корректировка.

В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумажных документов, являющихся основаниями для тех или иных учетных действий или расчетов. Тем не менее, использование этого типа данных может выходить далеко за рамки простой фиксации изменений, внесенных в учетные регистры.

Структура каждого конкретного вида документа определяется при его создании в конфигураторе. У любого вида документа существуют реквизиты, которые создаются автоматически — это «Дата» и «Номер». Номер создается, если при конфигурировании длина номера указана больше 0. Другие реквизиты документа определяются в конфигураторе отдельно для каждого создаваемого вида документа.

Документы в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Pacan4ik

0 / 0 / 0

Регистрация: 16.02.2010

Сообщений: 7

1

Изменить значение реквизита справочника

16.02.2010, 12:38. Показов 24091. Ответов 4

Метки нет (Все метки)


Парни подскажите!

Хочу сменить вид номенклатуры с Продукции на Товар, в результате меняется наименование текущего Вида Номенклатуры, а не сам ВидНоменклатуры. Допереть сам не могу

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ОчиститьСообщения();
    док_от = Документы.ОприходованиеТоваров.НайтиПоНомеру("КНЗ00000012", Дата(2009, 12, 31);); 
    Если док_от.Пустая() Тогда
        Сообщить("Документ не открыт");
        Возврат;
    иначе
        ком = док_от.ПолучитьОбъект();
        табЧасть = ком.Товары;
        Для Каждого ТекущаяСтрока Из ком.Товары Цикл 
            полО = ТекущаяСтрока.Номенклатура.ВидНоменклатуры.ПолучитьОбъект();
            полО.Наименование = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
            полО.Записать();    
        конецЦикла;
    конецесли;



0



Fenis

8 / 8 / 0

Регистрация: 15.02.2010

Сообщений: 17

16.02.2010, 13:11

2

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ОчиститьСообщения();
        док_от = Документы.ОприходованиеТоваров.НайтиПоНомеру("КНЗ00000012", Дата(2009, 12, 31);); 
        Если док_от.Пустая() Тогда
                Сообщить("Документ не открыт");
                Возврат;
        иначе
                ком = док_от.ПолучитьОбъект();
                табЧасть = ком.Товары;
                Для Каждого ТекущаяСтрока Из ком.Товары Цикл 
                        полО = ТекущаяСтрока.Номенклатура.ПолучитьОбъект();
                        полО.ВидНоменклатуры= Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
                        полО.Записать();        
                конецЦикла;
        конецесли;

Если хочешь изменить вид номенклатуры у номенклатуры, тогда и меня у номенклатуры )))



0



0 / 0 / 0

Регистрация: 16.02.2010

Сообщений: 7

16.02.2010, 13:42

 [ТС]

3

Цитата
Сообщение от Fenis
Посмотреть сообщение

Если хочешь изменить вид номенклатуры у номенклатуры, тогда и меня у номенклатуры )))

Если бы знал как, то, непременно, сделал бы



0



8 / 8 / 0

Регистрация: 15.02.2010

Сообщений: 17

16.02.2010, 13:44

4

Код я подправил в своем посте.



1



0 / 0 / 0

Регистрация: 16.02.2010

Сообщений: 7

16.02.2010, 14:01

 [ТС]

5

Цитата
Сообщение от Fenis
Посмотреть сообщение

Код я подправил в своем посте.

Да уж, ответ лежал на поверхности, спасибо



0



Изменение дополнительных реквизитов справочника при помощи обработки «Групповое изменение реквизито»

Автор 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) нет строки, где свойство = Производитель и поиск возвращает Неопределено

Спасибо за Сказать спасибо


Опубликовано 15.03.2021 06:29
Автор: Administrator
Просмотров: 13961

Как часто вам достается от предыдущего бухгалтера хорошая база 1С, в которой почти нет ошибок? Да, практически, никогда! «Задвоенные», а то и «затроенные» данные, куча лишних договоров у контрагентов, некорректные счета учета, отрицательные остатки по номенклатуре – вот лишь малая часть того, с чем сталкивается новый бухгалтер. И, зачастую, совсем мало времени остается на исправление. Пользователи могут сутками вручную переносить данные на верную позицию в базе, однако в этом материале мы хотим рассказать об интересном функционале программы 1С, с помощью которого вы управитесь за считанные минуты! Речь пойдет о групповом изменении реквизитов в программе 1С: Бухгалтерия предприятия ред. 3.0. 

Изменение значений реквизитов в документах

Как часто вы сталкивались с проблемой раздвоения информации по договорам или контрагенту? Например, при выгрузке из клиент-банка создался новый элемент в справочнике, и пользователь, не обратив внимание, использует оба наименования при вводе документов.

Рассмотрим на примере ИП Симоновой А.И.

В оборотно-сальдовой ведомости по счету 60 «Расчеты с поставщиками и подрядчиками» видно, что поставщик ООО «Гладиолус» повторяется дважды. Кроме этого, по второй строке ООО «Гладиолуса», в оборотах 2021 года, в документах фигурирует договор 2020 года. 

Если такой случай единичный, конечно же пользователь может исправить недочет вручную. А как быть, если документов много?

В такой ситуации поможет данная обработка.

ВНИМАНИЕ: Если у вас недостаточно опыта, лучше доверить это специалистам, т.к. данная процедура необратима. И если вы всё же решите поэкспериментировать со своей базой, не забудьте сделать резервную копию.

Рассмотрим действия пошагово.

Шаг 1. Перейдите в раздел «Администрирование» — «Обслуживание».

Шаг 2. Разверните меню «Корректировка данных» и перейдите по гиперссылке «Групповое изменение реквизитов».

Кредиторская задолженность в оборотно-сальдовой ведомости по первой строке ООО «Гладиолус» образована документами «Поступление (акт, накладная, УПД)». Значит в первую очередь нам надо заменить в них ООО «Гладиолус» №1 на ООО «Гладиолус» №2. А следующим этапом приступись к обработке договоров.

Шаг 3. Выполните настройку формы.

• В поле «Изменять» укажите обрабатываемый документ. В нашем примере это «Поступление (акты, накладные, УПД)».

• Изменяемый реквизит документа отметьте галочкой «Контрагент» и в поле «Новое значение» установите ООО «Гладиолус», на который надо сделать замену.

Для того, чтобы установить дополнительные фильтры и настройки, перейдите по гиперссылке «Все элементы».

В поле «Выбранные элементы» отображаются все документы поступления. Для установления фильтра установите отбор.

Шаг 4. Нажмите кнопку «Добавить условие» и задайте: «Контрагент» равно ООО «Гладиолус». При выборе значения выберите тот элемент, который нужно заменить.

Лишние документы отсеются и останутся лишь удовлетворяющие условию отбора.

Нажмите «Ок».

Итак, задано две настройки:

Первая – отбор по контрагенту ООО «Гладиолус» (№1);

Вторая – указание нового значения поля «Контрагент» — ООО «Гладиолус» (№2).

В окне обработки нажмите «Изменить реквизиты».

Подождите окончания выполнения действия и проверьте Оборотно-сальдовую ведомость снова.

ООО «Гладиолус» у нас остался в единственном экземпляре, но с разбивкой по договорам.

Аналогично рассмотренному варианту перенесите договора «Без договора» и «Договор 2020 г.» на одну строку – «Договор 2021 г.»

Шаг 5. Выполните новую настройку.

Перейдя по гиперссылке «Все реквизиты», одновременно с отбором по контрагенту ООО «Гладиолус» (новое значение), установите отбор – «Договор» равно «Без договора».

Шаг 6. Нажмите «ОК» и в поле «Новое значение» для реквизита «Договор» укажите тот, на который производится замена – «Договор 2021».

Шаг 7. Нажмите «Изменить реквизиты».

Аналогично проделайте со вторым договором – «Договор 2020 г.». Но обратите внимание, что расхождение в данном договоре по дебету счета 60 «Расчеты с поставщиками и подрядчиками», а значит задействована оплата поставщику и документ «Списание с расчетного счета».

Шаг 8. Выберите вид обрабатываемого документа – «Списание с расчетного счета».

Перейдите по гиперссылке «Все элементы» и установите отбор по полю «Получатель» — «Контрагент» — ООО «Гладиолус» и полю «Договор» – «Договор 2020 г.».

Обратите внимание, что значение состава реквизитов в таблице меняется в зависимости от выбранного элемента обработки.

Нажмите «Изменить реквизиты». Действие замены выполнено.

Проверьте Оборотно-сальдовую ведомость по счету 60: все договора перенесены на один – «Договор 2021 г.»

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

Изменение значений реквизитов в справочках

Например, изменим единицу измерения у товаров, находящихся в группе «Крупы».

В карточке номенклатуры товара, с одноименным названием группы – «Крупа» — установлена единица измерения – граммы. Предположим, что пользователь ошибочно, копируя при внесении в справочник номенклатуру, указал всем наименованиям эту единицу измерения. Установим с помощью обработки верное значение – килограммы.

Шаг 1. Выполните настройку, указав в поле «Изменять» справочник «Номенклатура».

Значение изменяемого реквизита «Единица» установите – «Кг».

В настройке отбора добавьте условие: «Входит в группу» равно «Крупы».

Нажмите «Ок» и кнопку выполните команду «Изменить реквизиты».

Проверим справочник «Номенклатура» группу «Крупы». Единица измерения «Кг» на входящие в нее элементы установлена.

Таким образом, можно произвести замену любого реквизита справочника.

И еще один лайфхак 1С: с помощью обработки «Групповое изменение реквизитов» можно ставить и снимать пометку на удаление.

Установка (снятие) пометки на удаление с помощью обработки
«Групповое изменение реквизитов»

Шаг 1. В нижней части обработки нажмите кнопку «Дополнительные параметры…»

Разверните пункт «Специальные возможности» и установите галочку «Показывать служебные реквизиты».

В результате этого действия в списке реквизитов появилось поле – «Пометка на удаление», где пользователь может задать значение «Да» или «Нет».

Шаг 2. Установите значение пометки на удаление «Да» и выберите объект, который надо удалить. В нашем примере обрабатываются документы «Поступление на расчетный счет».

Шаг 3. Перейдите по гиперссылке «Все элементы» и установите отбор.

Обратите внимание, если ведется учет по нескольким организациям, в условие отбора добавьте и обрабатываемую организацию.

В данном условии заложена команда – отобрать все документы «Поступления на расчетный счет», по организации «ИП Симонова А.И.», введенные датой позже 01.01.2021 года.

Нажав кнопку «Изменить реквизиты», на документы, удовлетворяющие заданному условию, установится пометка на удаление.

Одновременно установите значение реквизита проведен «Нет», чтобы при обработке система сделала их непроведенными. В противном случае 1С выдаст сообщение: «Проведенный документ не может быть помечен на удаление!»

По окончании действия обработки программа сообщит, что реквизиты изменены и покажет количество обработанных объектов.

Подведем итог: работая с большим объемом информации, пользователь может допускать некоторые ошибки, исправить которые легко можно с помощью данного инструмента, зная о его существовании.

Автор статьи: Ольга Круглова

Text.ru - 100.00%

Понравилась статья? Подпишитесь на рассылку новых материалов

Добавить комментарий

Lyrium

1С-Предприятие 8.3. Попытался изменить значения столбца «Ставка НДС» в таблице «Номенклатура» на «Без НДС», за неимением группировок и работой со всем столбцом решил написать скрипт, значение столбца получить удалось, да и количество записей + значение, которое записать нужно, но столкнулся со следующим: функция Записать(); ругается на отсутствие метода или что-то такое.

Вот листинг:
Процедура УстановитьНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Номенклатура.СтавкаНДС КАК СтавкаНДС1,
| Номенклатура.СтавкаНДС.Ссылка,
| Номенклатура.СтавкаНДС.Порядок
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ДЛЯ ИЗМЕНЕНИЯ»;

Выборка=Запрос.Выполнить().Выгрузить();
//ТекЗапись = Справочник.Номенклатура.СоздатьМенеджерЗаписи();

Для каждого Строка из Выборка Цикл
Документ = Строка;
Документ.СтавкаНДС1 = Перечисления.СтавкиНДС.БезНДС;
Сообщить(Документ.СтавкаНДС1);
Записать();
КонецЦикла;

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

и скрины:
5ac009686c8e4600b8f1d4be002792e4.jpg3dfc3065519a491095e454f24e924dd2.jpg

Каким образом обновить/сохранить/записать эту несчастную «Без НДС» во все поля столбца ?
До этого никогда не работал с 1С и документации адекватной найти не получилось


  • Вопрос задан

    более трёх лет назад

  • 3091 просмотр

Быстрое решение. Запустите групповую обработку справочников и документов (обработка, которая есть во всех типовых конфигурациях и в обычном и в управляемом вариантах интерфейсов), выберите тип справочник номенклатура, наложите при необходимости отбор и изменяйте значение реквизита для всех элементов.

Путь программиста. Нужно запросом отобрать не свойства ставки НДС из справочника номенклатуры, а ссылки на элементы справочника (с отбором на то, что это не группа). Далее по выборке из запроса по ссылке получаете объект, заменяете ставку НДС и записываете назад в базу. Выглядит примерно так:

Запрос = Новый Запрос("Выбрать Ссылка Из Справочник.Номенклатура Где не ЭтоГруппа");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Товар = Выборка.Ссылка.ПолучитьОбъект();
    Товар.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; 
    Товар.Записать();
КонецЦикла;

А что написали Вы?
Вы отбираете свойства номенклатуры (скорее всего они у всех одинаковые = 18%) и далее работаете с массивом идентичной информации. Поскольку в вашей переменной Выборка находится ТаблицаЗначений, то значения поля СтавкаНДС1 вам с легкостью удается переопределить (бессмысленное занятие с учетом того, что после выполнения процедуры эта таблица будет удалена из памяти).
Далее вызываете метод контекста Записать() — который определен внутри модуля объекта и модуля формы элемента для объектов данных. В случае работы внутри формы элемента справочника номенклатуры вам бы удалось записать текущий элемент, но вы скорее всего работаете в обработке и в ее контексте этого метода по-умолчанию нет — поэтому получаете ошибку.

Пригласить эксперта

Дополню Дмитрия, что у Вас произошла подмена понятий. Справочник Номенклатуры это одна сущность, а один из атрибутов этой сущности «CтавкаНДС» — по сути ссылка на другую сущность.

Представьте, что у Вас есть две таблицы:
1. Человек[Id, Имя, Пол] — здесь поле «Пол» — это Foreign Key на таблицу полов #2
2. Пол[id, Имя]

Стоит задача перезаписать пол человека. Вы у себя просто перебираетe элементы таблицы «Пол» безотносительно к нужным Вам элементам таблицы «Человек».

Ну и дальше Дмитрий уже рассказал.

Т.е. нужно отталкиваться от того, что вам нужно перезаписать элемент сущности «Cправочник.Номенклатура», соответственно и ссылку нужно на нее выбирать и работать с ней.


  • Показать ещё
    Загружается…

22 мар. 2023, в 12:47

5000 руб./за проект

22 мар. 2023, в 12:42

3000 руб./за проект

22 мар. 2023, в 12:15

500 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:
  • Изобильненский городской округ официальный сайт реквизиты
  • Имеет ли право пассажир проехать одну остановку бесплатно
  • Имеет ли право управляющая компания красить подъезд зимой
  • Имеет ли право управляющая компания отключить канализацию
  • Имеет ли право управляющая компания работать без лицензии