• Авторизация


Замечательные функции 1С 80. 29-07-2005 17:30 к комментариям - к полной версии - понравилось!


Для тех, кто не любит писать запросы в 1С 80, предлагаю использовать (С)-Гений1С-функции для поиска и заполнения объектов:

ОбъектНайтиПоРеквизитам(Тип, Вид, Стр, Много=ложь);
Ищет объект по реквизитам, указанным в структуре Стр.
Если Много=истина, возвращается массив найденных элементов, иначе только первый найденный элемент. Поиск осуществляется с помощью запроса.

ОбъектСоздатьПоРеквизитам(Тип, Вид, Стр, СтрЗаписи, Много);
Ищет один объект(ы) по реквизитам, указанным в структуре Стр и заполняет его реквизиты согласно структуре СтрЗаписи.
Удобна в тех случаях, когда если объект существует нам нужно изменить его, а если не существует - создать.

ОбъектЗаполнитьПоРеквизитам(Объект, СтрЗаписи);
Просто заполняет Объект согласно структуре СтрЗаписи.

Стр(_Стр, К1=Неопределено, Зн1=Неопределено ..., К10=Неопределено, Зн10=Неопределено);
Если параметр _Стр - структура значений, то делается ее копия и в нее добавляются значения Зн(I) с ключами К(I).
Если же первый параметр не структура, то просто создается и возвращается структура согласно переданным значениям и ключам.
Это как бы более компактный альтернативный конструктор конструктору 1С 80 Новый Структура.

Примеры:
Объект.НайтиПоРеквизитам("Справочники", "Номенклатура", Стр("Наименование", "Пиво"), истина); - ищет пиво
Объект.НайтиПоРеквизитам("Задачи", "ЗадачаГлавная", Стр("БизнесПроцесс", БиснесПроцесс), истина); - ищет все задачи по данному бизнес-процессу

Объект.СоздатьПоРеквизитам("Справочник", "Номенклатура", Стр("Наименование", "Пиво"), Стр("Код", 12, "Артикул", 177));
Присваивает пиву код 12 и артикул 177.

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

Объект.НайтиПоРеквизитам("Справочники", "Номенклатура", Стр("Код", Стр("<", 123)), истина); - возвращает все элементы, код которых меньше 123.

Объект.НайтиПоРеквизитам("Справочники", "Номенклатура", Стр("Код", Стр("Условие", "Элемент.Код<123 И Элемент.Код>10")), истина); - возвращает все элементы, удовлетворяющим условию, написанному на языке запросов.

Объект.ЗаполнитьПоРеквизитам(Товар, Стр("Артикул", Стр("ТолькоПустые", "123-АК"), Стр("Код", Стр("ТолькоПустые", "123"))); - устанавливает товару код 123 и артикул 123-АК только в том случае, если эти реквизиты не заполнены.

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Замечательные функции 1С 80. | fixin - Дневник fixin | Лента друзей fixin / Полная версия Добавить в друзья Страницы: раньше»