-Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в fixin

 -Сообщества

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 12.12.2002
Записей: 4343
Комментариев: 24598
Написано: 35607


Замечательные функции 1С 80.

Пятница, 29 Июля 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-АК только в том случае, если эти реквизиты не заполнены.

Рубрики: 

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

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