Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 читайте на сайте

1C Регистр Сведений Прочитать Набор Записей Регистра • Регистры сведений

Если внесете новый товар, то все внесется и будет работать, а как только тот же товар — сразу происходит вывод предупреждения, что такое уже существует.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
оно не имеет смысла для механизма периодических расчётов в 1С ни премию, ни оклад, ни штраф мы никогда не начисляем в реальном времени. Урок 29. Регистр сведений: подчинение регистратору | 1С: Программирование | Яндекс Дзен Обращайтесь в форму связи

Заметки по 1С:Предприятие 8.2, 8.3

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).

Регистры сведений

На следующей схеме изображено взаимодействие объектов встроенного языка для работы с регистрами сведений.

РегистрСведенийМенеджерЗаписи.. Позволяет читать, записывать и удалять отдельную запись регистра сведений. Используется только для регистров сведений, не изменяемых регистраторами, т.е. для которых в конфигураторе установлен режим записи Независимый.

РегистрСведенийЗапись.. Предоставляет доступ к записи регистра сведений. Объект не создается непосредственно, а предоставляется другими объектами, связанными с регистром сведений. Например, данный объект предоставляет записи регистра в наборе записей.

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

// Пример: получить текущую цену из периодического регистра сведений «Цены».
Элемент = Справочники . Номенклатура . НайтиПоКоду ( 4 );
Отбор = Новый Структура ( «Номенклатура» , Элемент );
ЗначенияРесурсов = РегистрыСведений . Цены . ПолучитьПоследнее ( ТекущаяДата (), Отбор );
Цена = ЗначенияРесурсов . Цена ;

// 2. объект РегистрыСведенийМенеджер
// .
// []
// Для Каждого . Из . Цикл . КонецЦикла;

// Пример: получить начальную цену из периодического регистра сведений «Цены».
ИмяРегистра = «Цены» ;
Услуга = Справочники . Номенклатура . НайтиПоНаименованию ( «Диагностика» );
Отбор = Новый Структура ;
Отбор . Вставить ( «Номенклатура» , Услуга );
Цена = РегистрыСведений [ ИмяРегистра ]. ПолучитьПервое ( ТекущаяДата (), Отбор ). Цена ;

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

// 3. объект РегистрСведенийМенеджер.
// СоздатьКлючЗаписи()

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

// 4. объект РегистрСведенийМенеджер.
// СоздатьНаборЗаписей()

// Пример: показать номенклатуру, цена на которую была установлена в заданную дату и время.
Набор = РегистрыСведений . Цены . СоздатьНаборЗаписей ();
Набор . Отбор . Период . Установить ( ЗаданнаяДата , Истина);
Набор . Прочитать ();
Для Каждого ОчереднаяЗапись Из Набор Цикл
Сообщить ( «Номенклатура color: red;»>+ ОчереднаяЗапись . Номенклатура + «, цена color: red;»>+ ОчереднаяЗапись . Цена );
КонецЦикла;

Регистры 1С расчета для чайников(Часть 1) — wiki Programming Store

Один план видов расчета может использоваться в нескольких регистрах расчета, но один регистр расчета не может использовать несколько планов видов расчета одновременно.

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
В каждом регистре расчета может быть включена возможность связи записи с графиком времени, заданном в соответствующем регистре сведений. Протоколирование изменений в любом регистре сведений | Блог программиста Обращайтесь в форму связи

Запись в регистры 1С больших наборов записей

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

Проблема записи больших наборов особенно остро стоит именно для отмены проведения документов. Связано это с тем, что при проведении наборы можно дописывать порциями:

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

Известно, что запись больших наборов записей регистров накопления с использованием 32-разрядного сервера 1С:Предприятия может завершаться аварийно с сообщением о нехватке памяти, но в данном случае, хотя и использовался 32-разрядный сервер, никаких сообщений не выдавалось, да и работа шла не с регистром накопления, а с регистром бухгалтерии.

Мы инициировали обсуждение данной проблемы в партнерской конференции 1С http://partners.v8.1c.ru/forum/thread.jsp?id=856332 (требует регистрации).

Коллеги успокоили, подтвердив, что принципиальных ограничений в данном случае нет, и проблема должна иметь решение. В качестве примера приводились данные о реальных документах, делающих по 250 000 проводок.

Одной из интересных идей (Доронин Сергей, ВДГБ-Софт, Йошкар-Ола http://www.vdgb-soft.ru/) было отменять проведение документа вне транзакции:

Данный способ можно рекомендовать в проблемных случаях, но нам он не помог.

Решение было найдено специалистом фирмы-заказчика, который отменил проведение проблемного документа, переведя базу в монопольный режим (фрагмент кода из Синтакс-помощника):

По данному факту мы получили разъяснения из 1С (там же в конференции):

Полученный ответ позволил не только обосновать экспериментально найденный способ решения проблемы, но прояснил и еще два момента:

  • Почему запись набора записей несколькими порциями в ряде случаев может быть эффективнее, чем одной, о чем говорилось выше.
  • Для чего в типовых решениях 1С, например, в конфигурации «1С:Управление производственным предприятием 8» в модуле документа «Переоценка валютных средств» установлена такая, явно избыточная, блокировка.

Уже после того, как проблема была решена, были получены сведения об альтернативном способе решения проблемы (Пиголкин Станислав, Акселот, Москва http://www.axelot.ru/ ). Для этой цели рекомендовано отключать использование итогов:

Про метод УстановитьИспользованиеИтогов() в Синтакс-помощнике сказано:

Запись в регистры 1С больших наборов записей действительно имеет некоторые особенности, но она вполне осуществима. В затруднительных случаях изложенные выше способы, такие как:

  • запись несколькими порциями;
  • запись вне транзакции;
  • перевод базы в монопольный режим;
  • установка управляемой исключительной блокировки на весь регистр;
  • отключение использования итогов

Регистры 1С

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Известно, что запись больших наборов записей регистров накопления с использованием 32-разрядного сервера 1С Предприятия может завершаться аварийно с сообщением о нехватке памяти, но в данном случае, хотя и использовался 32-разрядный сервер, никаких сообщений не выдавалось, да и работа шла не с регистром накопления, а с регистром бухгалтерии. Заметки по 1С: Предприятие 8.2, 8.3: Регистры сведений Обращайтесь в форму связи

Урок 29. Регистр сведений: подчинение регистратору

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

Будет главным — это значит, что из него будет поступать информация в регистр.

Первоначально создадим документ «РасходнаяНакладная», которая будет отображать операции по уходу товара (Рисунок 1).

Не стоит забывать, что при создании нового документа важно указывать для них правильные типы и ссылки, а так же делать для реквизита «Договор» отбор по владельцу, а в данном случае это реквизит Контрагент.

Создадим регистр «РасходТовара» и укажем, что регистратором для него будет документ «РасходнаяНакладная» (Рисунок 2 — 3).

После этого перейдем на вкладку «Данные» и добавим нужные поля (Рисунок 4 — ).

Теперь необходимо перейти в документ на вкладку «Движения» (Рисунок 6). Нажать кнопку «Конструктор движений».

Конструктор движений — это один из инструментов разработки. Он используется только для документов и помогает создать процедуру обработки проведения документа на встроенном языке.

Движение — это функционал документа, который помогает обрабатывать события, которые происходят в деятельности предприятия.

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

После этого откроется окно с программным кодом (Рисунок 8), его необходимо пока просто закрыть.

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

Не забываем добавить регистр и новый документ в подсистему «Продажи» и запустим пользовательский режим (Рисунок 9).

Выберем регистратор, а это документ «Расходная накладная» и в табличную часть добавим товар, количеству и цену, а сумма должна посчитаться автоматически. После этого нажать «Записать и закрыть» (Рисунок 10).

После этого зайти в регистр «РасходТовара» и вы там увидите элемент, который вносили в документ (Рисунок 11). Таким образом получается, что из регистратора (документа) данные поступают в регистр сведений и хранятся там для востребования в дальнейшем.

Теперь зайдите снова в документ «Расходная накладная» и попробуйте создать в нем абсолютно такой же элемент в табличной части и получите уведомление (Рисунок 12).

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

На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их — ссылки внизу!

Запись в регистры 1С больших наборов записей

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts