<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>1c-нік - вчимось програмувати в &#34;1с Підприємство 8.1&#34; &#187; Регістри накопичення</title>
	<atom:link href="http://1c-nik.ru/tag/rehistry-nakopychennya/feed/" rel="self" type="application/rss+xml" />
	<link>http://1c-nik.ru</link>
	<description>Блог про програмування на &#34;1с Підприємство 8.1&#34;</description>
	<lastBuildDate>Fri, 03 Feb 2012 12:18:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Регістри накопичення</title>
		<link>http://1c-nik.ru/2009/07/rehistry-nakopychennya/</link>
		<comments>http://1c-nik.ru/2009/07/rehistry-nakopychennya/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 10:14:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Блог починаючого програміста]]></category>
		<category><![CDATA[1с]]></category>
		<category><![CDATA[1с Підприємство]]></category>
		<category><![CDATA[Документ]]></category>
		<category><![CDATA[Документи]]></category>
		<category><![CDATA[проведення документа]]></category>
		<category><![CDATA[Регістри накопичення]]></category>
		<category><![CDATA[рухи регістра]]></category>

		<guid isPermaLink="false">http://1c-nik.ru/2009/07/rehistry-nakopychennya/</guid>
		<description><![CDATA[Звичайно у вас виникне питання що таке «Регістр накопичення» і для чого він здався?
Справа в тому, що ми маємо довідники і документи, в документах маємо потрібну нам інформацію для формування звітів (наприклад залишків по певних складах) проте для отримання потрібних нам результатів потрібно буде проаналізувати всі документ що роблять відповідні рухи товарів. Добре якщо це [...]]]></description>
			<content:encoded><![CDATA[<h4>Звичайно у вас виникне питання що таке «<strong><em>Регістр накопичення</em></strong>» і для чого він здався?</h4>
<p>Справа в тому, що ми маємо довідники і документи, в документах маємо потрібну нам інформацію для формування звітів (наприклад залишків по певних складах) проте для отримання потрібних нам результатів потрібно буде проаналізувати всі документ що роблять відповідні рухи товарів. Добре якщо це лише один документ приходу та один документ розходу товарів. В випадку коли їх кілька задача ускладнюється, якщо ж документів кілька десятків запрограмувати звіт буде дуже важко. Чи не краще зберігати дані про рухи товарів в одній окремій структурі даних і при формуванні звіту всі дані вибирати інформацію лише звідтіля? Для полегшення доступу до інформації яка зберігається в багатьох документах, та і не тільки в документах було створено «регістри накопичення».</p>
<p>Регістр накопичення має певну структуру в якій і накопичуються дані . ці дані будуть зберігатися в регістрі в вигляді окремих записів.</p>
<p>Важливо відмітити що регістр накопичення не передбачає того щоб користувач міг його редагувати. Регістр створений для того щоб дані в нього заносились і модифікувались виключно об’єктами конфігурації.</p>
<p>До поняття «регістр накопичення» мають відношення також поняття «<strong><em>вимір</em></strong>» та «<strong><em>ресурс</em></strong>».</p>
<p>Вимірами (измерениями) називають розрізи інформації представлені в регістрі (в нашому випадку це може бути склад куди прийняли товар і сам товар.</p>
<p>Числова інформація що зберігається в регістрі називається ресурсами.</p>
<p>Зміна стану регістру накопичення відбувається як правило під час проведення документу і полягає в тому що в регістр додаються кілька записів з посилання на документ який зробив зміну (документ буде регістратором), «напрям» приросту (прихід чи розхід) ну і звичайно значення вимірів та ресурсів. Все в комплексі називається рухом регістру.</p>
<p>Крім вищевказаної інформації регістр може мати набір <strong><em>реквізитів</em>, </strong>це додаткова інформація відносно руху регістру.</p>
<p>Давайте створимо регістр в якому буде фіксуватись інформація про рух наших дисків.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image002.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image002" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image002_thumb.jpg" border="0" alt="clip_image002" hspace="12" width="216" height="159" /></a>Регістр накопичення відповідно буде називатись ЗалишкиДисків і матиме лише один вимір <strong><em>«Диски»</em></strong>, (посилання на відповідний довідник, та один ресурс – «Кількість», де вказуватиметься скільки дисків прийшло чи пішло.</p>
<p>Зберігаємо даний регістр накопичення. Оскільки, як вказувалось вище, рухи по регістру можливі лише за допомогою документів то потрібно налаштувати документи для роботи з данним регістром. <span id="more-60"></span></p>
<p>Відкриваємо в конфігуратор документ <strong><em>ПрихіднаНакладна.</em></strong></p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image004.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image004" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image004_thumb.jpg" border="0" alt="clip_image004" width="244" height="241" /></a></p>
<p>Якщо ви уважно робили попередні уроки, то ви помітили що стала активною закладка «Рухи», якраз з нею ми і будемо працювати.</p>
<p>В верхньому віконечку вибираємо регістр накопичення <strong><em>«ЗалишкиДисків»</em></strong> і відзначаємо його галочкою, потім в нижній частині вікна натискуємо на кнопку <strong><em>«Конструктор рухів»</em></strong></p>
<p>Ви побачите наступне вікно:</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image006.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image006" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image006_thumb.jpg" border="0" alt="clip_image006" width="244" height="172" /></a></p>
<h5>Конструктор рухів в «1с:Підприємство 8.1»</h5>
<p>В табличці «Регістри» вказано той регістр рухи якого ми будемо конструювати.</p>
<p>Рухи по регістрах можуть бути двох типів: Прихід (чомусь по версії «1с:Підприємство 8.1» це «Прибуток») та розхід (по версії «1с:Підприємство 8.1» &#8211; «Видаток»).</p>
<p>В початковому варіанті в реквізитах документу вказано лише реквізити шапки документу, в разі якщо нам потрібно зробити рух по табличній частині вказуємо її у відповідному полі.</p>
<p>Після підготовчої частині вказуємо в нижній табличній частині відповідність реквізитів документу – значенням відповідних вимірів та ресурсів регістру. Для цього просто потрібно натиснути спочатку на порожньому полі в колонці «Вираз» а потім двічі клацнути на відповідному реквізиті документу. До речі для полегшення вибору реквізитів на відповідних до вимог регістру полях збоку з’являються маленькі червоні галочки. Коли багато реквізитів це дуже полегшує роботу.</p>
<p>Після натискування кнопки «ОК» бачимо наступну картину:</p>
<p>«Конструктор рухів» створив наступний код:</p>
<p><strong><em>Процедура ОбработкаПроведения(Отказ, Режим)</em></strong></p>
<p><strong><em>//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</em></strong></p>
<p><strong><em>// Даний фрагмент побудований конструктором.</em></strong></p>
<p><strong><em>// При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!!</em></strong></p>
<p><strong><em>Для Каждого ТекСтрокаТовар Из Товар Цикл</em></strong></p>
<p><strong><em>// регістр ЗалишкиДисків Приход</em></strong></p>
<p><strong><em>Движение = Движения.ЗалишкиДисків.Добавить();</em></strong></p>
<p><strong><em>Движение.ВидДвижения = ВидДвиженияНакопления.Приход;</em></strong></p>
<p><strong><em>Движение.Период = Дата;</em></strong></p>
<p><strong><em>Движение.Диски = ТекСтрокаТовар.Товар;</em></strong></p>
<p><strong><em>Движение.Кількість = ТекСтрокаТовар.Кть;</em></strong></p>
<p><strong><em>КонецЦикла;</em></strong></p>
<p><strong><em>//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</em></strong></p>
<p><strong><em>КонецПроцедуры</em></strong></p>
<p>Перша стрічка вказує що код буде виконуватись лише при проведенні документу, це наперед визначена зарезервована процедура.</p>
<p>Друга і передостання стрічки це службові коментарі. Значення яких вказано в 3 і 4 стрічках.</p>
<p>Наступні стрічки це, властиво, сам значущий код програми.</p>
<p>Конструкція</p>
<h6>Для Каждого &#8230; Из … Цикл</h6>
<h6>КонецЦикла;</h6>
<p>Це стандартна конструкція «1с:Підприємство 8.1» для перебору табличної частини звертання до якої іде по назві «<strong><em>Товар</em></strong>».</p>
<p>Зауважте що об’єкт мови «1с:Підприємство 8.1» <strong><em>ДокументОб</em></strong><strong><em>ъ</em></strong><strong><em>ект</em></strong> властивість <strong><em>Движения </em></strong>яке повертає колекцію наборів рухів регістрів до яких можна звернутись набравши крапку і назву регістру.</p>
<p>Таким чином в першій лінійці циклу ми додаємо до об’єкту <strong><em>Движения</em></strong> новий запис і зберігаємо його в змінній <strong><em>Движение</em></strong>. Потім ми присвоюємо потрібні значення полям, і так поки працює цикл. Після закінчення циклу ми записуємо значення в регістр одним масивом.</p>
<p>Ну що ж перевіримо чи працює те що ми так красиво описали <img src='http://1c-nik.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Запускаємо «1с:Підприємство 8.1» та відкриємо спочатку Регістр накопичення «Залишки дисків» (Операції-регістри накопичення –залишки дисків)</p>
<p>А потім документ «Прихідна накладна». (Операції-документи-прихідна накладна)</p>
<p>Коли ви натисните на «ОК» в регістрі з’являться відповідні записи.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image008.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image008" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image008_thumb.jpg" border="0" alt="clip_image008" width="244" height="154" /></a></p>
<p>Тепер налаштуємо наш документ ПозичивПодивитись.</p>
<p>Дії аналогічні як і з налаштуванням приходної накладної</p>
<p>Йдемо «Рухи – Регістр накопичення – Залишки дисків» потім конструктор рухів.</p>
<p>Єдина суттєва зміна це «Тип руху регістру» &#8211; «Видаток» див. рис.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image010.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image010" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image010_thumb.jpg" border="0" alt="clip_image010" width="244" height="171" /></a></p>
<p>Натискування «ОК» призведе до формування наступного коду він дуже подібний до попереднього.</p>
<p><strong><em>Процедура ОбработкаПроведения(Отказ, Режим)</em></strong></p>
<p><strong><em>//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</em></strong></p>
<p><strong><em>// Даний фрагмент побудований конструктором.</em></strong></p>
<p><strong><em>// При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!!</em></strong></p>
<p><strong><em>Для Каждого ТекСтрокаДиски Из Диски Цикл</em></strong></p>
<p><strong><em>// регістр ЗалишкиДисків Расход</em></strong></p>
<p><strong><em>Движение = Движения.ЗалишкиДисків.Добавить();</em></strong></p>
<p><strong><em>Движение.ВидДвижения = ВидДвиженияНакопления.Расход;</em></strong></p>
<p><strong><em>Движение.Период = Дата;</em></strong></p>
<p><strong><em>Движение.Диски = ТекСтрокаДиски.Диск;</em></strong></p>
<p><strong><em>Движение.Кількість = ТекСтрокаДиски.кть;</em></strong></p>
<p><strong><em>КонецЦикла;</em></strong></p>
<p><strong><em>//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</em></strong></p>
<p><strong><em>КонецПроцедуры</em></strong></p>
<p>Збережемо документ і запустивши «1с:Підприємство 8.1» перевіримо як він працює</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image012.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image012" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image012_thumb.jpg" border="0" alt="clip_image012" width="244" height="163" /></a></p>
<p>Як видно з скріншоту рух по регістру відбувся. Отже документ рацює правильно поздоровляю!</p>
<p>В наступному уроці будемо вчитись створювати звіти.</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/07/rehistry-nakopychennya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

