<?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; 1с</title>
	<atom:link href="http://1c-nik.ru/tag/1s/feed/" rel="self" type="application/rss+xml" />
	<link>http://1c-nik.ru</link>
	<description>Блог про програмування на &#34;1с Підприємство 8.1&#34;</description>
	<lastBuildDate>Tue, 13 Jul 2010 07:07:46 +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>Частина десята «Створення звітів» ч.1 Загальні поняття, мова запитів.</title>
		<link>http://1c-nik.ru/2009/10/chastyna-desyata-stvorennya-zvitiv-ch-1-zahalni-ponyattya-mova-zapytiv/</link>
		<comments>http://1c-nik.ru/2009/10/chastyna-desyata-stvorennya-zvitiv-ch-1-zahalni-ponyattya-mova-zapytiv/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 12:15:15 +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>

		<guid isPermaLink="false">http://1c-nik.ru/?p=230</guid>
		<description><![CDATA[Загальні поняття
Звіти в системі «1с:Підприємство 8.1» це окрема навіть не глава це окрема частина системи. Порівнюючи стандартні звіти системи 7.7 та 8.1 можна відзначити що в «1с:Підприємство 8.1» значно гнучкіші звіти ніж в 7.7 Сьогодні ми навчимось створювати звіти.
Проте давайте спочатку задамось питанням «Що таке звіт?». Звіт це вибірка даних з різних джерел, їхнє групування, [...]]]></description>
			<content:encoded><![CDATA[<h2>Загальні поняття</h2>
<p>Звіти в системі «1с:Підприємство 8.1» це окрема навіть не глава це окрема частина системи. Порівнюючи стандартні звіти системи 7.7 та 8.1 можна відзначити що в «1с:Підприємство 8.1» значно гнучкіші звіти ніж в 7.7 Сьогодні ми навчимось створювати звіти.</p>
<p>Проте давайте спочатку задамось питанням «Що таке звіт?». Звіт це вибірка даних з різних джерел, їхнє групування, сортування, та представлення в вигляді, як правило, таблиці. Отже для формування звіту ми для початку маємо знати де в базі даних знаходяться  потрібні нам дані.</p>
<p>Для роботи з звітами в системі «1с:Підприємство 8.1» використовується об’єкт «<strong><em>Запрос</em></strong>». Він дозволяє отримувати інформацію, що зберігається в полях бази даних, в вигляді вибірки, що сформована по заданим правилам.</p>
<p>Вихідну інформацію звіт(запит)  отримує з набору таблиць.  Ці таблиці містять реальні дані отримані з бази даних і можуть бути поділені на дві великі групи: реальні та віртуальні. В свою чергу реальні таблиці можуть бути поділені на об’єктні таблиці та необ’єктні таблиці. Реальні таблиці містять інформацію з будь якої реальної таблиці.  В нашому випадку це може бути довідник фільмів.</p>
<p>Віртуальні таблиці формуються з кількох реальних таблиць бази даних. Наприклад віртуальною є таблиця регістрів накопичення «<strong><em>ОстаткиИОбороты</em></strong>».</p>
<p>Об’єктні таблиці містять інформацію об’єктних даних (довідники, документи…) . Особливістю об’єктних таблиць є те, що вони включають в себе поле <strong><em>Ссылка</em></strong>, що містить  посилання на поточний запис. Крім того для таких таблиць є характерним ієрархічність, тобто поля таких таблиць можуть містити в собі вкладені таблиці, табличні частини.</p>
<h1>Мова запитів</h1>
<p>Те які дані будуть вибрані з бази і їхнє представлення, все це  описується в запиті (тексті запиту) який формується на спеціальній мові зпитів. Текст запиту в загальному складається з наступних частин:</p>
<ul>
<li>Опис запиту</li>
<li>Об’єднання запитів</li>
<li>Впорядкування результатів</li>
<li>Автовпорядкування результатів</li>
<li>Опис підсумків</li>
</ul>
<p>Обов’язковою частиною є тільки перша – опис запиту. Все решта може додаватись по мірі необхідності.</p>
<p>Опис запиту визначає джерела даних, поля вибірки, групування …</p>
<p>Об’єднання запиті  визначає як будуть об’єднані результати кількох запитів.</p>
<p>Впорядкування результатів визначає умови впорядкування стрічок запиту.</p>
<p>Автовпорядкування дозволяє включити режим автоматичного сортування стрічок запиту.</p>
<p>Опис підсумків  пояснює які підсумки потрібно розраховувати і як групувати результат.</p>
<p>Детально мова запитів описана в відповідній літературі. Ми з основними конструкціями мови ознайомимось в процесі створення запитів(звітів).</p>
<p>Нагадую що бухгалтера  можуть записатись на <a href="http://1c-nik.ru/info/">курси 1с</a> які я провожу у Львові.  Курси для  користувачів системи 1с Бухгалтерія для України.</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/10/chastyna-desyata-stvorennya-zvitiv-ch-1-zahalni-ponyattya-mova-zapytiv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Курси 1С</title>
		<link>http://1c-nik.ru/2009/10/kursy-1s/</link>
		<comments>http://1c-nik.ru/2009/10/kursy-1s/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 07:35:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Блог починаючого програміста]]></category>
		<category><![CDATA[1с]]></category>
		<category><![CDATA[курси]]></category>
		<category><![CDATA[реклама]]></category>
		<category><![CDATA[СЕО]]></category>

		<guid isPermaLink="false">http://1c-nik.ru/?p=208</guid>
		<description><![CDATA[Написав рекламну інформацію про курси 1С. Вчора підійшов до шефа і запитав чи будуть бонуси за заохочених клієнтів, зійшлись на тому що будуть клієнти на курси будуть і бонси. Так що тепер в мене є можливість спробувати себе в якості інтернет оптимізатора і спробувати вивести цей сайт в топ по запиту курси 1С в регіоні [...]]]></description>
			<content:encoded><![CDATA[<p>Написав рекламну інформацію про <a href="http://1c-nik.ru/info/">курси 1С</a>. Вчора підійшов до шефа і запитав чи будуть бонуси за заохочених клієнтів, зійшлись на тому що будуть клієнти на курси будуть і бонси. Так що тепер в мене є можливість спробувати себе в якості інтернет оптимізатора і спробувати вивести цей сайт в топ по запиту <a href="../info/">курси 1С</a> в регіоні Львів.  Думаю що якщо сюди будуть заходити адекватні люди то одну  групу в місяць можна буде набрати (після відповідної СЕО розкрутки).  Відсьогодні думаю в кожно му пості ставити лінки на рекламу курсів.  І підключу сайт до системи Сеобомб (думаю отримати за це ТІЦ та відповідне ранжування в яндексі)</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/10/kursy-1s/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Частина сьома &#171;Перелічення&#187;</title>
		<link>http://1c-nik.ru/2009/08/chastyna-soma-perelichennya/</link>
		<comments>http://1c-nik.ru/2009/08/chastyna-soma-perelichennya/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 13:54:33 +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>

		<guid isPermaLink="false">http://1c-nik.ru/2009/08/chastyna-soma-perelichennya/</guid>
		<description><![CDATA[
Наша відеотека почала розвиватись і ми вже не просто позичаємо диски друзям і колегам, а і продаємо диски з фільмами (це означає що ми будемо купувати чисті диски та коробки і записувати на них фільми для продажі). Крім того ми вирішили записувати диски на носії інформації за певну суму (тобто надаємо послуги). Відповідно в програму [...]]]></description>
			<content:encoded><![CDATA[<h3></h3>
<p>Наша відеотека почала розвиватись і ми вже не просто позичаємо диски друзям і колегам, а і продаємо диски з фільмами (це означає що ми будемо купувати чисті диски та коробки і записувати на них фільми для продажі). Крім того ми вирішили записувати диски на носії інформації за певну суму (тобто надаємо послуги). Відповідно в програму потрібно внести зміни. Подивимось якими вони будуть.</p>
<p>Спочатку ми створимо перелічення «ВидТовару» з наступними значеннями: «Товар», «Послуга».</p>
<p>Потім ми створимо новий довідник «Номенклатура». В ньому вкажемо реквізит «Вид» і встановимо його тип «ВидТовару».</p>
<p>Тепер відредагуємо регістр накопичення «ЗалишкиДисків». Відкриємо вимір «Диски» і відредагуємо його вид даних наступним чиномВкажемо що в регістрі використовується складний тип даних. І відзначимо два довідники («Диски», «Номенклатура») як типи даних даного виміру (див. рис.).</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/08/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/08/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="244" height="228" /></a></p>
<p>Аналогічні дії потрібно буде провести в двох документах, там де фігурує тип даних «Диски».</p>
<p>Тепер давайте змінимо процедуру проведення документу «ПозичивПодивитись». Тепер процедура проведення буде виглядати так:</p>
<p><strong>Процедура ОбработкаПроведения(Отказ, Режим)</strong></p>
<p><strong>//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</strong></p>
<p><strong>// Даний фрагмент побудований конструктором.</strong></p>
<p><strong>// При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!!</strong></p>
<p><strong>Для Каждого ТекСтрокаДиски Из Диски Цикл</strong></p>
<p><strong>// регістр ЗалишкиДисків Расход</strong></p>
<p><strong>если ТекСтрокаДиски.Диск.Метаданные().Имя = &#8220;Номенклатура&#8221; тогда</strong></p>
<p><strong>если ТекСтрокаДиски.Диск.Вид &lt;&gt; перечисления.ВидТовару.Послуга тогда</strong></p>
<p><strong>Движение = Движения.ЗалишкиДисків.Добавить();</strong></p>
<p><strong>Движение.ВидДвижения = ВидДвиженияНакопления.Расход;</strong></p>
<p><strong>Движение.Период = Дата;</strong></p>
<p><strong>Движение.Диски = ТекСтрокаДиски.Диск;</strong></p>
<p><strong>Движение.Кількість = ТекСтрокаДиски.кть;</strong></p>
<p><strong>конецесли;</strong></p>
<p><strong>иначе</strong></p>
<p><strong>Движение = Движения.ЗалишкиДисків.Добавить();</strong></p>
<p><strong>Движение.ВидДвижения = ВидДвиженияНакопления.Расход;</strong></p>
<p><strong>Движение.Период = Дата;</strong></p>
<p><strong>Движение.Диски = ТекСтрокаДиски.Диск;</strong></p>
<p><strong>Движение.Кількість = ТекСтрокаДиски.кть;</strong></p>
<p><strong>конецесли;</strong></p>
<p><strong>КонецЦикла;</strong></p>
<p><strong>//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</strong></p>
<p><strong>КонецПроцедуры</strong></p>
<p>Як бачимо в тілі циклу додано дві вкладені одна в другу конструкції</p>
<p><strong><em>Если … Тогда …. Конецесли;</em></strong></p>
<p>В першій конструкції ми перевіряємо чи в колонці «Диск» табличної сатини «Диски» вибрано елемент довідника «Номенклатура». В разі якщо це так тоді другим «если» ми перевіряємо чи номенклатура є послугою. Якщо це твердження не відповідає дійсності тоді робимо рух по регістру. В разі якщо вибраний елемент не належить довіднику номенклатура ми просто проводимо його по регістру без додаткових перевірок.</p>
<p>На цьому пропоную закінчити.</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/08/chastyna-soma-perelichennya/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Регистры накопления</title>
		<link>http://1c-nik.ru/2009/07/rehystryi-nakoplenyya/</link>
		<comments>http://1c-nik.ru/2009/07/rehystryi-nakoplenyya/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 19:05:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Блог начинающего программиста]]></category>
		<category><![CDATA[1с]]></category>
		<category><![CDATA[1с Предприятие]]></category>
		<category><![CDATA[Документы]]></category>
		<category><![CDATA[Регистры накопления]]></category>

		<guid isPermaLink="false">http://1c-nik.ru/2009/07/rehystryi-nakoplenyya/</guid>
		<description><![CDATA[Конечно, у вас возникнет вопрос что такое «Регистр накопления» и для чего он нужен?
Дело в том, что мы имеем справочники и документы, в документах есть нужная нам информация для формирования отчетов (например, остатков по определенным складам) однако для получения нужных нам результатов нужно будет проанализировать все документы, по обороту товаров. Хорошо если это всего, лишь [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0025.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_thumb4.jpg" border="0" alt="clip_image002" hspace="12" width="216" height="159" /></a>Конечно, у вас возникнет вопрос что такое <strong><em>«Регистр накопления»</em></strong> и для чего он нужен?<br />
Дело в том, что мы имеем справочники и документы, в документах есть нужная нам информация для формирования отчетов (например, остатков по определенным складам) однако для получения нужных нам результатов нужно будет проанализировать все документы, по обороту товаров. Хорошо если это всего, лишь один документ прихода и один документ расходов товаров. В случае если их несколько задача усложняется, если же документов несколько десятков запрограммировать отчет будет очень трудно. Не лучше ли хранить данные о движения товаров в одной отдельной структуре данных и при формировании отчета все данные выбирать только оттуда? Для облегчения доступа к информации, которая хранится во многих документах, да и не только в документах были созданы <strong><em>«регистры накопления»</em></strong>.<br />
Регистр накопления имеет определенную структуру в которой и накапливаются данные. эти данные будут храниться в регистре в виде отдельных записей.<br />
Важно отметить что регистр накопления не предусматривает того чтобы пользователь мог его изменить. Регистр создан для того чтобы данные в него заносились и модифицировались исключительно объектами конфигурации.<br />
К понятию «регистр накопления» имеют отношение также понятие «<strong><em>измерение</em></strong>» и «<strong><em>ресурс</em></strong>».<br />
Измерениями называют разрезы информации, представленные в регистре (в нашем случае это может быть склад, куда приняли товар и сам товар).<br />
Числовая информация, хранящаяся в регистре, называется ресурсами.<br />
Изменение состояния регистра накопления происходит как правило во время проведения документа и заключается в том, что в регистр добавляются несколько записей с ссылкой на документ который сделал изменения (документ будет регистратором), «направление» прироста (приход или расход) ну и конечно значения измерений и ресурсов. Все это в комплексе называется движением регистра.<br />
Помимо вышеуказанной информации регистр может иметь набор реквизитов, это дополнительная информация относительно движения регистра.<br />
Давайте создадим регистр, в котором будет фиксироваться информация о движении наших дисков.</p>
<p>Регистр накопления соответственно будет называться ЗалишкиДисків и будет иметь лишь одно измерение «Диски», (ссылка на соответствующий справочник, и один ресурс &#8211; «Количество», где указывается сколько дисков пришло или ушло.<br />
Сохраняем данный регистр накопления. Поскольку, как указывалось выше, движения по регистру возможны только с помощью документов необходимо настроить документы для работы с регистром данных.</p>
<p>Открываем в конфигураторе документ <strong><em>ПрихиднаНакладна</em></strong>.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0044.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_thumb3.jpg" border="0" alt="clip_image004" width="244" height="241" /></a></p>
<p>Если вы внимательно делали предыдущие уроки, то вы заметили что стала активной закладка «Движения», именно с ней мы и будем работать.<br />
В верхнем окошечко выбираем регистр накопления «ЗалишкиДискив» и отмечаем его галочкой, затем в нижней части окна нажымаем на кнопку «Конструктор движений»<br />
Вы увидите следующее окно:</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0064.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_thumb3.jpg" border="0" alt="clip_image006" width="244" height="172" /></a></p>
<h5>Конструктор движений в «1с: Предприятие 8.1»</h5>
<h6>В табличке «Регистры» указано регистр движения, которого мы будем конструировать.<br />
Движения по регистрах могут быть двух типов: Приход и расход.<br />
В первоначальном варианте в реквизитах документа указаны только реквизиты шапки документа, в случае если нам нужно сделать движения, реквизиты которых есть в табличной части, то указываем ее в соответствующем поле.<br />
После подготовки указываем в нижней табличной части соответствие реквизитов документа &#8211; значениям соответствующих измерений и ресурсов регистра. Для этого просто нужно нажать сначала на пустом поле в колонке «Выражение» а затем дважды щелкнуть на соответствующем реквизите документа. Кстати для облегчения выбора реквизитов на соответствующих требованиям регистра полях сбоку появляются маленькие красные галочки. Когда много реквизитов это очень облегчает работу.<br />
После нажатия кнопки «ОК» видим что «Конструктор движений» создал следующий код:</h6>
<h6>Процедура ОбработкаПроведения(Отказ, Режим)</h6>
<p>//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</p>
<p>// Даний фрагмент побудований конструктором.</p>
<p>// При повторному використанні конструктора, внесені вручну зміни будуть втрачені!!!</p>
<h6>Для Каждого ТекСтрокаТовар Из Товар Цикл</h6>
<p><strong><em>// регістр ЗалишкиДисків Приход</em></strong></p>
<h6>Движение = Движения.ЗалишкиДисків.Добавить();</h6>
<h6>Движение.ВидДвижения = ВидДвиженияНакопления.Приход;</h6>
<h6>Движение.Период = Дата;</h6>
<h6>Движение.Диски = ТекСтрокаТовар.Товар;</h6>
<h6>Движение.Кількість = ТекСтрокаТовар.Кть;</h6>
<h6>КонецЦикла;</h6>
<p><strong><em>//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ</em></strong></p>
<h6>КонецПроцедуры</h6>
<h6>Первая строка указывает, что код будет выполняться только при проведении документа, это заранее определенная зарезервированная процедура.<br />
Вторая и предпоследняя строки это служебные комментарии. Назначение которых указаны в 3 и 4 строках.<br />
Следующие строки это, собственно, сам значимый код программы.<br />
Конструкция<br />
Для Каждого &#8230; Из … Цикл</h6>
<h6>КонецЦикла;</h6>
<p>Это стандартная конструкция «1с: Предприятие 8.1» для перебора табличной части обращение, к которой идет по названию «<strong><em>Товар</em></strong>».<br />
Заметьте что для ДокументОбъект доступно свойство Движение, которое возвращает коллекцию наборов движений регистров, к которым можно обратиться, набрав точку и название регистра.<br />
Таким образом, в первой строке цикла мы добавляем к объекту «<strong><em>Движение»</em></strong> новую запись и сохраняем его в переменной <strong><em>Движение</em></strong>. Потом мы присваивает нужные значения полям, и так пока работает цикл. После окончания цикла мы записываем значение в регистр одним махом.<br />
Ну что же проверим, работает ли то, что мы так красиво описали <img src='http://1c-nik.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Запускаем «1с: Предприятие 8.1» и откроем сначала Регистр накопления «Остатки дисков» (Операции-регистры накопления-остатки дисков)<br />
А затем документ «Прихидна накладная». (Операции-документы-прихидна накладная)<br />
Когда вы нажмете на «ОК» в регистре появятся соответствующие записи.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0084.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_thumb3.jpg" border="0" alt="clip_image008" width="244" height="154" /></a></p>
<p>Теперь настроит наш документ ПозичивПодивитись.<br />
Действия аналогичны, как и с настройкой приходной накладной.<br />
Идем «Движения &#8211; Регистр накопления &#8211; Остатки дисков» потом конструктор движений.<br />
Единственное существенное изменение это «Тип движения регистр» &#8211; «расход» см. рис.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0102.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_thumb2.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_image0122.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_thumb2.jpg" border="0" alt="clip_image012" width="244" height="163" /></a></p>
<p>Как видно из скриншота движение по регистру состоялось. Итак, документ работает правильно поздравляю!<br />
В следующем уроке будем учиться создавать отчеты.</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/07/rehystryi-nakoplenyya/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Частина четверта &#171;Періодичний реєстр відомостей&#187;</title>
		<link>http://1c-nik.ru/2009/07/chastyna-chetverta-periodychnyj-rejestr-vidomostej/</link>
		<comments>http://1c-nik.ru/2009/07/chastyna-chetverta-periodychnyj-rejestr-vidomostej/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 10:21:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Блог починаючого програміста]]></category>
		<category><![CDATA[1с]]></category>
		<category><![CDATA[1с Підприємство]]></category>
		<category><![CDATA[Періодичний реєстр відомостей]]></category>
		<category><![CDATA[створення]]></category>

		<guid isPermaLink="false">http://1c-nik.ru/2009/07/chastyna-chetverta-periodychnyj-rejestr-vidomostej/</guid>
		<description><![CDATA[В даній частині ми з вами ознайомимось з реєстром відомостей а точніше з його підвидом періодичним реєстром відомостей. Даний реєстр відрізняється від реєстру накопичення тим що тут значення ресурсів можуть мати не тільки цифрове значення. Другою відмінністю від реєстру накопичення є те що тут реєстр встановлює нове значення а не змінює старе. Дану структуру на [...]]]></description>
			<content:encoded><![CDATA[<p>В даній частині ми з вами ознайомимось з реєстром відомостей а точніше з його підвидом періодичним реєстром відомостей. Даний реєстр відрізняється від реєстру накопичення тим що тут значення ресурсів можуть мати не тільки цифрове значення. Другою відмінністю від реєстру накопичення є те що тут реєстр встановлює нове значення а не змінює старе. Дану структуру на практиці ми можемо використати для зберігання цін товарів. Дійсно якщо ми будемо продавати товар то ціна на нього на протязі часу може (навіть має) змінюватись Тобто прив’язка до часової шкали просто необхідна. Звичайно це вплинуло на вимоги до унікальності запису. Запис тепер буде унікальним при об’єднанні унікальних записів вимірів регістру та періодичності. До речі періодичність може бути в регістрі різною, зокрема:</p>
<ul>
<li>в межах секунди</li>
<li>В межах дня</li>
<li>В межах місяця</li>
<li>В межах кварталу</li>
<li>В межах року</li>
<li>В межах реєстратору (якщо встановлений режим запису підлеглий реєстратору)</li>
<li><span id="more-139"></span></li>
</ul>
<p>Період це службове поле і завжди має тип дата. Та слугує для приналежності значення до якогось періоду. При записі даних «1с:Підприємство 8.1» приводить тип дати до початку періоду в який вона припадає. Наприклад при періодичності місяць дата 14-01-2009 перетвориться в записаному регістр і в 01-01-2009</p>
<p>Ще однією особливістю даного регістра є те що тут немає прямої заборони на редагування даних користувачем напряму. Якщо є прив’язка до документа-реєстратора то редагування реєстру напряму буде неможливим, якщо ж реєстр не є прив’язаний до реєстратора то такий реєстр називається незалежним і його редагування доступне користувачу.</p>
<p>Думаю теоретичних відомостей вже достатньо, давайте перейдемо до практичного використання даних.</p>
<p>Оскільки ми будемо позичати( а можливо в майбутньому і продавати фільми) то на потрібно буде зафіксувати ціни по яких ми будемо продавати з прив’язкою до дати.</p>
<p>Йдемо на закладку конфігуратора «Регістри відомостей» та створимо новий регістр відомостей «Ціни».</p>
<p>На основній закладці задаєте назву «Ціни» і вказуєте періодичність регістру в межах дня</p>
<p>На закладці дані вказуєте вимір регістру &#8211; «Диски» і вибираєте тип даних «Довідник.диски»</p>
<p>Ресурсом відповідно буде «<strong><em>Ціна</em></strong>» &#8211; тип число, довжина 15, 2 знаки після коми, невід’ємне.</p>
<p>Ну що ж тепер перейдемо до налаштування документів для роботи з даним реєстром.</p>
<p>Документ «<strong><em>ПрихіднаНакладна</em></strong>» ми рухати не будемо, нас більше цікавить документ «<strong>ПозичивПодивитись</strong>» оскільки якраз в ньому ціни мали би заповнюватись автоматично.</p>
<p>Для початку відкриємо його екранну форму.</p>
<p>Ціна має виставлятись в той момент коли ми вже вибрали який диск ми будемо позичати(продавати). Значить вибираємо поле введення диску і натискуємо на збільшувальне скло навпроти події «<strong><em>ПриИзменении</em></strong>»</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0024.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_thumb3.jpg" border="0" alt="clip_image002" width="244" height="50" /></a></p>
<p>Там ми пропишемо наступне</p>
<p><strong>Процедура ДискиДискПриИзменении(Элемент)</strong></p>
<p><strong>// Вставити вміст обробника.</strong></p>
<p><strong>строкатабличнойчасти= элементыформы.диски.ТекущиеДанные;</strong></p>
<p><strong>строкатабличнойчасти.ціна= РоботаЗДокументами.РоздрібнаЦіна(дата,элемент.значение);</strong></p>
<p><strong>ЗФ.ПерерахунокСуми(строкатабличнойчасти);</strong></p>
<p><strong>КонецПроцедуры</strong></p>
<p>Перший рядок &#8211; отримуємо дані поточної стрічки</p>
<p>Другий рядок викликаємо функцію з загального модуля <strong>РоботаЗДокументами</strong> <strong><em>РоздрібнаЦіна</em></strong> і передаємо їй два параметри: <strong><em>Дату</em></strong> та <strong><em>Значення поточного елементу керування</em></strong> ( в нашому випадку значення довідника дисків).</p>
<p>Третій рядок – перерахунок суми в поточній стрічці.</p>
<p>Почекайте, почекайте, скаже уважний читач але ж ми не маємо ніякого загального модуля <strong>РоботаЗДокументами</strong> і ніякої функції <strong><em>РоздрібнаЦіна </em></strong>. Все правильно ми якраз і підійшли до їхнього створення.</p>
<p>По аналогії з загальним модулем «ЗФ» створимо модуль «РоботаЗДокументами» в якоми ми напишемо наступну функцію:</p>
<p><strong><em> </em></strong></p>
<p><strong><em>функция РоздрібнаЦіна(АктуальнаДата,ЕлементНоменклатури) экспорт</em></strong></p>
<p><strong><em>відбір = Новый Структура(&#8221;Диски&#8221;,ЕлементНоменклатури );</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>В другій стрічці ми отримуємо значення регістру.</p>
<p>А в останній стрічці повертаємо як значення функції ціну на диск, яка актуальна на відповідну дату.</p>
<p>Тепер запустіть «1с:Підприємство 8.1» і в періодичний регістр відомостей «Ціна» внесіть ціни на диски на 1 число місяця і на 10 число місяця.</p>
<p>Виберіть диск в табличній частині і подивіться на ціну. Тепер поміняйте дату і знову виберіть диск, ціна має змінитись.</p>
<p>Поздоровляю на цьому наше зняття з цінами можна вважати закінченим.</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/07/chastyna-chetverta-periodychnyj-rejestr-vidomostej/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Частина 4 &#171;Редагування макетів та форм&#187;</title>
		<link>http://1c-nik.ru/2009/07/chastyna-4-redahuvannya-maketiv-ta-form/</link>
		<comments>http://1c-nik.ru/2009/07/chastyna-4-redahuvannya-maketiv-ta-form/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 09:52:58 +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>

		<guid isPermaLink="false">http://1c-nik.ru/2009/07/chastyna-4-redahuvannya-maketiv-ta-form/</guid>
		<description><![CDATA[В даному розділі ми навчимось створювати друковані форми документів. Проте спочатку ми маємо відредагувати форму документу додавши відповідну кнопку яка буде запускати механізм формування та виводу на екран друкованої форми.
Для початку відкриємо документ а потім його форму і з панелі елементів керування додамо кнопку на форму документу.

Вкажіть заголовок кнопки «Друк» в відповідному полі «Властивостей».
Тепер підготуємо [...]]]></description>
			<content:encoded><![CDATA[<p>В даному розділі ми навчимось створювати друковані форми документів. Проте спочатку ми маємо відредагувати форму документу додавши відповідну кнопку яка буде запускати механізм формування та виводу на екран друкованої форми.</p>
<p>Для початку відкриємо документ а потім його форму і з панелі елементів керування додамо кнопку на форму документу.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0023.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_thumb2.jpg" border="0" alt="clip_image002" width="244" height="32" /></a></p>
<p>Вкажіть заголовок кнопки «Друк» в відповідному полі «Властивостей».</p>
<p>Тепер підготуємо макет друкованої форми документу. ДЛЯ цього перейдіть в вітку «Макети» Приходної накладної та створіть новий макет з назвою «Друк» та типом «Табличний документ».</p>
<p>Спочатку виділіть 6 рядків і через меню «Таблиця – імена – призначити ім’я» дайте їм ім’я «Шапка». Потім виділіть область в 2 клітинки по висоті та 5 по довжині і за допомогою кнопки <a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0043.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_thumb2.jpg" border="0" alt="clip_image004" width="96" height="75" /></a> об’єднайте їх. В цю загальну клітинку впишіть назву «Приходна накладна» та від форматуйте її на свій смак.</p>
<p>Третій рядок також об’єднайте і в нього внесіть наступний текст: № [номер] від [дата]</p>
<p>У властивостях комірки вкажіть значення параметру «Заполнение» «Шаблон».</p>
<p>Давайте пояснимо значення параметру «Заполнение».</p>
<ol>
<li>Текст – як ми його внести так і бачимо в згенерованому макеті</li>
<li>Параметр – ми по суті справи вказуємо ім’я змінної значення якого на етапі генерування підставляється в документ.</li>
<li>Шаблон – це зхрещення двох попередніх параметрів. Наприклад на етапі генерування значення номера і дати заміняться на свої фактичні значення відносно відкритого документу. Тобто змінні з обох боів виділяються квадратними дужками. А текст ніяк не виділяється.</li>
</ol>
<p><span id="more-134"></span></p>
<p>В шостий рядок має виглядати так:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="63"></td>
<td width="63"></td>
<td width="63"></td>
<td width="63"></td>
<td width="63"></td>
</tr>
<tr>
<td valign="bottom">№ п/п</td>
<td valign="bottom">Диск</td>
<td valign="bottom">Кількість</td>
<td valign="bottom">Ціна</td>
<td valign="bottom">Сума</td>
</tr>
</tbody>
</table>
<p>На цьому редагування шапки закінчимо.</p>
<p>Тепер виділяємо 7 рядок і через «Таблиця – імена – призначити ім’я» надамо йому ім’я «ПерелікДисків». В клітинках внесемо назви змінних, що співпадають з назвами колонок табличної частини «Товари» документу «Приходна накладна» в властивостях клітинок вказуйте «Заполнение: параметр».</p>
<p>Ну ніби все, щасливо подумає програміст-учень, проте це не так, ви вказали диски які отримали, але на дисках може бути по кілька фільмів, і бажано знати детально що ми отримуємо, наступна стрічка допоможе вивести інформацію про фільми на отриманих нами дисках.</p>
<p>Першу клітинку не заповнюємо а в наступних заповнюємо такими значеннями</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="277">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="25"></td>
<td width="176"></td>
<td width="63"></td>
<td width="63"></td>
<td width="63"></td>
</tr>
<tr>
<td valign="bottom"><em>НомерСтроки</em></td>
<td valign="bottom"><em>Фільм</em></td>
<td valign="bottom"><em>Режисер</em></td>
</tr>
</tbody>
</table>
</td>
<td width="51"></td>
<td width="38"></td>
<td width="48"></td>
<td width="211"></td>
</tr>
</tbody>
</table>
<p>Створюємо нову секцію:«Підвал», в якій клітинки заповнюємо так:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="25"></td>
<td width="176"></td>
<td width="63"></td>
<td width="63"></td>
<td width="63"></td>
</tr>
<tr>
<td valign="bottom"></td>
<td valign="bottom">Всього дисків</td>
<td valign="bottom">ВсьогоКть</td>
<td valign="bottom">на суму:</td>
<td valign="bottom">ВсьогоСума</td>
</tr>
</tbody>
</table>
<p>Де <strong><em>ВсьогоКть</em></strong> та <strong><em>ВсьогоСума</em></strong> є параметрами а все решта текстом.</p>
<p>З налаштуванням макету нібито все, перейдемо безпосередньо до процедури його формування та виводу на екран.</p>
<p>В загальному наш макет має виглядати так:</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0063.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_thumb2.jpg" border="0" alt="clip_image006" width="244" height="108" /></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>Макет = Документы.ПрихіднаНакладна.ПолучитьМакет(&#8221;Друк&#8221;);</em></strong></p>
<p><strong><em>// Шапка, формування,заповнення параметрів, вивід</em></strong></p>
<p><strong><em>Шапка = Макет.ПолучитьОбласть(&#8221;Шапка&#8221;); //отримуємо область макету шапка</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>ОбластьПерілікДисків = Макет.ПолучитьОбласть(&#8221;ПерелікДисків&#8221;); // отримуємо облать макету&#8221;ПерелікДискі&#8221;</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>ОбластьПФ = Макет.ПолучитьОбласть(&#8221;ПерелікФільмів&#8221;);</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>Область = Макет.ПолучитьОбласть(&#8221;Підвал&#8221;); //ну тут має бути все зрозуміло</em></strong></p>
<p><strong><em>Область.Параметры.ВсьогоКть = Товар.Итог(&#8221;кть&#8221;);//підсумовуємо колонку кть</em></strong></p>
<p><strong><em>Область.Параметры.ВсьогоСума = Товар.Итог(&#8221;Сума&#8221;);// та сума</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>Запускаємо «1с:Підприємство 8.1» і натискуємо на кнопку «Друк» любуємося результатом.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0083.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_thumb2.jpg" border="0" alt="clip_image008" width="244" height="120" /></a></p>
<p>Як домашнє завдання маєте зробити друковану форму для документу «позичивПодивитись»</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/07/chastyna-4-redahuvannya-maketiv-ta-form/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Часть вторая &#8220;Документы&#8221;</title>
		<link>http://1c-nik.ru/2009/07/chast-vtoraya-dokumentyi/</link>
		<comments>http://1c-nik.ru/2009/07/chast-vtoraya-dokumentyi/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 11:50:48 +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>

		<guid isPermaLink="false">http://1c-nik.ru/?p=123</guid>
		<description><![CDATA[В этой части мы ознакомимся с элементом конфигурации «Документ» от справочника документ отличается тем, что может иметь одино из двух состояний «проведен &#8211; не проведен». Если документ «проведен» означает событие произошло (товар отгружено, деньги от клиента поступили, и т.п.) Если документ не проведен то соответственно событие еще не зафиксировано и документ является черновиком, заготовкой. Каждый [...]]]></description>
			<content:encoded><![CDATA[<p>В этой части мы ознакомимся с элементом конфигурации «Документ» от справочника документ отличается тем, что может иметь одино из двух состояний «проведен &#8211; не проведен». Если документ «проведен» означает событие произошло (товар отгружено, деньги от клиента поступили, и т.п.) Если документ не проведен то соответственно событие еще не зафиксировано и документ является черновиком, заготовкой. Каждый документ привязан к событию которое произошло в определенный момент времени поэтому документы имеют привязку к дате и ко времени, что позволяет выстроить хронологические последовательности документов. Поскольку некоторые документы могут быть проведены задним числом в системе есть инструменты позволяющие отследить повлияют ли эти изменения на следующие по хронологии и логически связанные документы и перепровести их.<br />
<span id="more-123"></span><br />
Как правило документы имеют много информации которая важна для ведения правильного учета, такая дополнительная информация в системе 1с Предприятие называется реквизитами документа. Большинство реквизитов разработчик прописывает сам, однако два реквизита документа система добавляет автоматически, и их нельзя удалить, это дата документа (с точностью до секунды) и номер документа (как правило уникальный в течение года).</p>
<p>Информация которая является одинаковой по структуре но различна по количеству выносится в одну или несколько табличных частей документа (например, список товаров по цене и количеству принятых по приходной накладной).</p>
<p>С документом связано и такое понятие как оперативное или неоперативное проведение и перепроведение документа и оперативная отметка времени. При оперативном проведении система проверяет соответствие даты документа с текущей датой и если  дата совпадает тогда при проведении документа устанавливает текущее время или время на секунду больше последний оперативно проведенный сегодня документ. Если же дата не совпадает выводится сообщение о невозможности оперативного проведения документа.</p>
<p>Однако мы немного ошиблись при создании справочников мы забыли создать справочник дисков. «Справочник дисков» это справочник в котором указывается перечень дисков, а в табличной части указывается перечень фильмов которые есть на дисках. Также нужно создать дополнительный реквизит Примечание где будем указывать дополнительные данные.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0021.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image002[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0021_thumb.jpg" border="0" alt="clip_image002[1]" width="244" height="222" /></a></p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0041.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" title="clip_image004[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0041_thumb.jpg" border="0" alt="clip_image004[1]" width="244" height="195" /></a></p>
<p>Общий вид справочника дисков.</p>
<p><!--more--></p>
<p>Но мы отвлеклись, давайте создадим документ по которому мы получим диски с фильмами, это конечно будет «Приходная накладная».</p>
<p>Открываем соответствующую ветку в конфигурации и по аналогии со справочниками создаем новый документ «Приходная накладная».</p>
<p>Создадим табличную часть «Товар» в котором укажем следующие колонки: «Товар»-тип данных справочник дисков, количество, цена, сумма. Кстати, желательно во всех документах где фигурирует цена и сумма писать одинаково количество &#8211; «Кть», цена &#8211; «Цена», сумма &#8211; «Сумма». Поскольку это поможет унифицировать процесс программирования. Для чего это нужно немного ниже.</p>
<p>Теперь создадим форму документа. Общий вид не редактируем.</p>
<p>Если вы запустите «1с: Предприятие 8.1» в режиме «Предприятие» то создав новый документ (Операции_ Документы &#8211; Приходная накладная) вы увидите что колонку «сумма» нужно заполнять вручную, что не есть хорошо поскольку автоматизация процессов заключается в том, чтобы большинство рутинной работы делал компьютер. Понятно что в большинстве систем автоматизации будет много документов с колонками «Количество», «Цена», «Сумма». Поэтому каждый раз писать подпрограммку расчета суммы не очень целесообразно лучше раз написав такую программку использовать ее много раз.</p>
<p>Процедуры для совместного использования в «1с: Предприятие 8.1» создаются в конфигураторе в ветке «Общие», нас в данном случае интересует элемент ветки «Общие модули» (заметьте общих модулей может быть несколько).</p>
<p>Создадим новый общий модуль «ЗФ» (сокращение от «общие функции)».</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0061.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image006[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0061_thumb.jpg" border="0" alt="clip_image006[1]" width="244" height="182" /></a></p>
<p>Создаем общий модуль.</p>
<p>Алгоритм работы процедуры будет такой: процедура получает ссылку на активную строчку данных табличной части. И устанавливает в колонке «Сумма» число равное произведению количества на цену. Для работы процедуры необходимо, чтобы в табличной части были колонки с соответствующими названиями.</p>
<p>Сама процедура выглядит так:</p>
<p><span style="color: #0000ff;">Процедура ПерерахунокСуми(СтрокаТабличноїЧастини) экспорт</span></p>
<p><span style="color: #0000ff;">СтрокаТабличноїЧастини.сума=СтрокаТабличноїЧастини.кть*СтрокаТабличноїЧастини.ціна;</span></p>
<p><span style="color: #0000ff;">Конецпроцедуры</span></p>
<p>Слово экспорт указывает на то, что данная процедура доступна со всех частей конфигуратора.</p>
<p>Процедура пересчета суммы должна вызываться в двух случаях когда изменилось количество и когда изменилась цена. Для привязки процедуры к событию изменения цены в конфигуратор открываем форму документа и кликаем по соответствующему полю табличной части, после чего нажимаем на лупу на закладке События возле названия «ПриИзменениы» (см. рис.)</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0081.jpg"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="clip_image008[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0081_thumb.jpg" border="0" alt="clip_image008[1]" width="244" height="73" /></a></p>
<p>Когда откроется закладка «Модуль» с уже созданной заготовки процедуры которая будет вызываться при изменении количества мы прописывает там следующее:</p>
<p><span style="color: #0000ff;">Процедура ТоварКтьПриИзменении(Элемент)</span></p>
<p><span style="color: #0000ff;">ЗФ.ПерерахунокСуми(Элементыформы.Товар.ТекущиеДанные);</span></p>
<p><span style="color: #0000ff;">КонецПроцедуры</span></p>
<p>Где <span style="color: #0000ff;">ЗФ.ПерерахунокСуми()</span> &#8211; вызов Совместного модуля ЗФ и процедуры этого модуля «ПерерахунокСумы», а Элементыформы.Товар.ТекущиеДанные это передача ссылки на данные строки табличного элемента формы «Товар».</p>
<p>Аналогично делаем с колонкой «Сумма», поскольку к сожалению, в «1с: Предприятие 8.1» не реализовано назначения одного и того же обработчика события для нескольких элементов.</p>
<p>Запустите «1с: Предприятие 8.1» в режиме «Предприятие» и создайте несколько Приходных накладных.</p>
<p>Теперь создадим документ «ПозичивПодивитись» где будут следующие реквизиты:</p>
<p>- Кому (соответствующий справочник «Друг»)</p>
<p>- Дата возвращения (тип дата)</p>
<p>И табличная часть Диски с колонками:</p>
<p>- Диски</p>
<p>- Количество</p>
<p>- Цена</p>
<p>- Сумма</p>
<p>(последние три позиции чтобы выбить деньги если не отдаст <img src='http://1c-nik.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p>Для колонок количество и цена прописывает аналогичные процедуры как и для прихиднои накладной. Только не забываем что табличная часть называется не «Товар», а «Диски» (где заменить думайте сами <img src='http://1c-nik.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).</p>
<p>Мы учим программирования по принципу: «Вот бассейн учитесь плавать, а воду мы дадим позже».</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/07/chast-vtoraya-dokumentyi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Часть первая &#171;Справочники&#187;</title>
		<link>http://1c-nik.ru/2009/07/chast-pervaya-spravochnyky/</link>
		<comments>http://1c-nik.ru/2009/07/chast-pervaya-spravochnyky/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 10:20:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Блог начинающего программиста]]></category>
		<category><![CDATA[1с]]></category>
		<category><![CDATA[1с Предприятие]]></category>
		<category><![CDATA[Справочники]]></category>

		<guid isPermaLink="false">http://1c-nik.ru/2009/07/chast-pervaya-spravochnyky/</guid>
		<description><![CDATA[Перепечатывать определения, что такое справочник я бы не стал. В справочниках содержится информация про однородные, относительно конфигурации, сведения в виде списка, который может быть организован в древовидную структуру. В большинстве конфигураций есть справочники «Контрагенты», «Работники» , «Фирмы», «Номенклатура»
Интересно, что по сравнению с версией 7.7 в справочниках теперь используются не периодические реквизиты. Если вам нужно будет [...]]]></description>
			<content:encoded><![CDATA[<h4>Перепечатывать определения, что такое справочник я бы не стал. В справочниках содержится информация про однородные, относительно конфигурации, сведения в виде списка, который может быть организован в древовидную структуру. В большинстве конфигураций есть справочники «Контрагенты», «Работники» , «Фирмы», «Номенклатура»</h4>
<p>Интересно, что по сравнению с версией 7.7 в справочниках теперь используются не периодические реквизиты. Если вам нужно будет сохранить какие-то значения, меняющиеся со временем, нужно будет использовать объект конфигурации «Регистр сведений» (к подобным данных может относиться цена товара, меняющаяся относительно даты продажи, на 1 число одна на 5 другая). Проанализируем, какие справочники нужны нам, для нашей «Видеотеки»?</p>
<p>1. Справочник фильмов;<br />
2. Справочник жанров;<br />
3. Справочник актеров;<br />
4. Справочник режиссеров;<br />
5. Справочник стран производителей;<br />
6. Справочник номинаций и наград;<br />
7. Справочник дисков (в одном диске может быть несколько фильмов);<br />
8. Справочник друзей (клиентов) (тех, кто берет фильмы).</p>
<p>Ну, для начала, кажется достаточно. Давайте создадим все эти справочники в системе. Запускаем «1С Предприятие» добавляем новую пустую базу данных и заходим в конфигуратор (смотри рисунки).</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0022.jpg"><img style="border: 0px none; display: inline;" title="clip_image002" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image002_thumb1.jpg" border="0" alt="clip_image002" width="244" height="173" /></a></p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0042.jpg"><img style="border: 0px none; display: inline;" title="clip_image004" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image004_thumb1.jpg" border="0" alt="clip_image004" width="244" height="230" /></a></p>
<p>Создание новой базы без конфигурации.</p>
<p><span id="more-99"></span></p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0062.jpg"><img style="border: 0px none; display: inline;" title="clip_image006" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image006_thumb1.jpg" border="0" alt="clip_image006" width="244" height="232" /></a></p>
<p>Указываем наименования базы, а на следующем вкладыше путь, где будут жить наша база. Теперь входим в режим конфигуратора.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0082.jpg"><img style="border: 0px none; display: inline;" title="clip_image008" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image008_thumb1.jpg" border="0" alt="clip_image008" width="244" height="173" /></a></p>
<p>Нужно открыть конфигурацию.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0101.jpg"><img style="border: 0px none; display: inline;" title="clip_image010" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image010_thumb1.jpg" border="0" alt="clip_image010" width="188" height="157" /></a></p>
<p>Выделить пункт справочники и щелкнуть кнопкой добавить.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0121.jpg"><img style="border: 0px none; display: inline;" title="clip_image012" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image012_thumb1.jpg" border="0" alt="clip_image012" width="220" height="183" /></a></p>
<p>Появиться следующее окно, где заполняем только название: «Друзья».</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image014.jpg"><img style="border: 0px none; display: inline;" title="clip_image014" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image014_thumb.jpg" border="0" alt="clip_image014" width="244" height="242" /></a></p>
<p>По умолчанию в системе новый элемент имеет два предопределенных реквизита: Код и Наименование. При добавлении элементов в справочник нет необходимости использовать форму, поэтому мы указываем редактирование в списке:</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image016.jpg"><img style="border: 0px none; display: inline;" title="clip_image016" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image016_thumb.jpg" border="0" alt="clip_image016" width="244" height="241" /></a></p>
<p>К тому же, когда мы будем добавлять элементы списка, мы имеем возможность редактировать код элемента, что не очень хорошо (это я пишу не понаслышке) поэтому нужно будет отредактировать внешний вид списка.</p>
<p>Добавляем новую форму, указываем тип формы.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image018.jpg"><img style="border: 0px none; display: inline;" title="clip_image018" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image018_thumb.jpg" border="0" alt="clip_image018" width="244" height="209" /></a></p>
<p>Нажимаем «следующая» и убираем галочку с отметки код и нажимаем «ОК».</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image020.jpg"><img style="border: 0px none; display: inline;" title="clip_image020" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image020_thumb.jpg" border="0" alt="clip_image020" width="198" height="192" /></a></p>
<p>Теперь у нас в списке элементов не отображается его код и пользователь не может его изменить. Сохраняем конфигурацию и запускаем 1С. Потом нажимаем «Операции» &#8211; «Справочник» и выбираем справочник «Друзья» через кнопку «Добавить» (клавиша Insert) добавляем список друзей.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image022.jpg"><img style="border: 0px none; display: inline;" title="clip_image022" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image022_thumb.jpg" border="0" alt="clip_image022" width="212" height="152" /></a> <a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image024.jpg"><img style="border: 0px none; display: inline;" title="clip_image024" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image024_thumb.jpg" border="0" alt="clip_image024" width="185" height="147" /></a><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image026.jpg"><img style="border: 0px none; display: inline;" title="clip_image026" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image026_thumb.jpg" border="0" alt="clip_image026" width="163" height="176" /></a></p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image028.jpg"><img style="border: 0px none; display: inline;" title="clip_image028" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image028_thumb.jpg" border="0" alt="clip_image028" width="165" height="91" /></a><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image030.jpg"><img style="border: 0px none; display: inline;" title="clip_image030" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image030_thumb.jpg" border="0" alt="clip_image030" width="244" height="130" /></a></p>
<p>Теперь начнем создавать справочник «Номинации и Награды». Здесь справочник немного сложнее. Во-первых, кроме названия нужно указать номинация или награда имеется в виду, поэтому нужно добавить объект конфигурации «Перечисление».</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image032.jpg"><img style="border: 0px none; display: inline;" title="clip_image032" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image032_thumb.jpg" border="0" alt="clip_image032" width="244" height="97" /></a></p>
<p>Справочники жанров, актеров, режиссеров, стран производителей создаем аналогично справочнику друзей. Нужно указать только их название и сделать, чтобы код не отображался в форме списке. Перейдем к самому большому у нас справочнику: «Справочника фильмов».</p>
<p>В данном справочнике будут следующие реквизиты (в скобках указанный тип данных):</p>
<p>1. Год выпуска (число 4 цифры);<br />
2. Продолжительность фильма (дата, время);<br />
3. Короткое описание фильма (срока, галочка неограниченная длина);<br />
4. Оценка (от 1 к 10) (число, 5 цифр 3 после запятой);<br />
5. Количество голосов (число);<br />
6. Режиссер.</p>
<p>И табличные части:</p>
<p>1. Номинации и награды;<br />
2. Актеры и роли;<br />
3. Страны производители;<br />
4. Жанры.</p>
<p>Важно, какие типы данных используются во всей системе.</p>
<p>Условно их можно разделить на две категории: элементарные или (пользуясь терминологией разработчиков, примитивные) и типы данных конкретной конфигурации, которые создаются объектами конфигурации.</p>
<p>Например, мы создали объект конфигурации «Справочник жанров» сразу появится тип данных связанных с данным объектом.</p>
<p>Этот отступление было необходимо, ведь мы сейчас как раз и столкнемся с использованием в таких сложных типов данных.<br />
В табличных частях указываем соответствующие справочники как типы данных (то есть реквизит актер – тип данных справочник актеров, реквизит страна – справочник стран и т.п.).<br />
Год указываем как число с четырьмя знаками. Может возникнуть вопрос: зачем мы вынесли жанры в табличную часть? Просто фильм может сниматься в ряде стран и его можно будет отнести к нескольким жанрам. Вообще, все реквизиты и табличные части выглядят следующим образом:</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image034.jpg"><img style="border: 0px none; display: inline;" title="clip_image034" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image034_thumb.jpg" border="0" alt="clip_image034" width="194" height="244" /></a></p>
<p>Теперь остается только разработать форму внесения нового фильма. Идем для закладки формы:</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image036.jpg"><img style="border: 0px none; display: inline;" title="clip_image036" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image036_thumb.jpg" border="0" alt="clip_image036" width="244" height="202" /></a></p>
<p>И подгоняем форму под вид.</p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image038.jpg"><img style="border: 0px none; display: inline;" title="clip_image038" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image038_thumb.jpg" border="0" alt="clip_image038" width="244" height="204" /></a></p>
<p>Всё, работу со справочниками тому можно считать законченной.<br />
Необходимо напомнить, что в режиме конфигуратора можно вносить элементы справочников и они (элементы) в таком случае будут иметь свое собственное имя в системе и его нельзя удалить в режиме «Предприятие». Такие заранее определенные элементы могут быть включены в логику работы программы наравне со справочниками и документами.</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/07/chast-pervaya-spravochnyky/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<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>
		<item>
		<title>Частина друга &#171;Документи&#187;</title>
		<link>http://1c-nik.ru/2009/07/chastyna-druha-dokumenty/</link>
		<comments>http://1c-nik.ru/2009/07/chastyna-druha-dokumenty/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 16:49:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Блог починаючого програміста]]></category>
		<category><![CDATA[1с]]></category>
		<category><![CDATA[Документи]]></category>
		<category><![CDATA[Підприємство]]></category>
		<category><![CDATA[Спільні модулі]]></category>
		<category><![CDATA[створення]]></category>

		<guid isPermaLink="false">http://1c-nik.ru/2009/07/chastyna-druha-dokumenty/</guid>
		<description><![CDATA[В цій частині ми ознайомимось з елементом конфігурації «Документ» від довідника документ відрізняється тим, що може мати один з двох станів «проведено – не проведено». Якщо документ «проведено» значить подія відбулась (товар відгружено, гроші від клієнта поступили, тощо) Якщо документ не проведено то відповідно подія ще не зафіксована і документ є чорновиком, заготовкою. Кожний документ [...]]]></description>
			<content:encoded><![CDATA[<p>В цій частині ми ознайомимось з елементом конфігурації «Документ» від довідника документ відрізняється тим, що може мати один з двох станів «проведено – не проведено». Якщо документ «проведено» значить подія відбулась (товар відгружено, гроші від клієнта поступили, тощо) Якщо документ не проведено то відповідно подія ще не зафіксована і документ є чорновиком, заготовкою. Кожний документ прив’язаний до події яка відбулась в певний момент тому документи мають прив’язку до дати та часу, що дозволяє вистроїти хронологічну послідовність документів. Оскільки деякі документи можуть бути проведені заднім числом в системі є інструменти що дозволяють від слідкувати чи вплинуть ці зміни на наступні за хронологією і логічно пов’язані документи та перепровести їх.</p>
<p>Як правило документи мають багато інформації яка важлива для ведення правильного обліку така додаткова інформація в системі 1с Підприємство називається реквізитами документа. Більшість реквізитів розробник прописує сам проте два реквізити документу система додає автоматично і їх не можна видалити це дата документа ( з точністю до секунди) та номер документа (як правило унікальний на протязі року) .</p>
<p>Інформація яка є однаковою по структурі але різна по кількості виноситься в одну або кілька табличних частин документа (наприклад перелік товарів з ціною та кількістю які взяли по прихідній накладній). </p>
<p>З документом пов’язано і таке поняття як <i>оперативне чи неоперативне проведення</i> та перепроведення документу та <i>оперативна відмітка часу. </i>При оперативному проведенні система перевіряє чи співпадає дата документу з поточною датою і якщо співпадає тоді при проведенні документу встановлює поточний час або час на секунду більший за останній оперативно проведений сьогодні документ. Якщо ж дата не співпадає виводиться повідомлення про неможливість оперативного проведення документу. </p>
<p>Проте ми трохи помилились при створенні довідників ми забули створити довідник дисків. «Довідник дисків» це довідник в якому вказується перелік дисків а в табличній частині вказується перелік фільмів які є на дисках. Також потрібно створити додатковий реквізит Примітка де будемо вказувати додаткові дані. </p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0021.jpg"><img title="clip_image002[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="222" alt="clip_image002[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0021_thumb.jpg" width="244" border="0" /></a></p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0041.jpg"><img title="clip_image004[1]" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="195" alt="clip_image004[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0041_thumb.jpg" width="244" border="0" /></a></p>
<p>Загальний вигляд довідника дисків.</p>
<p>  <span id="more-35"></span>
<p>Але ми відволіклись давайте створимо документ по якому ми отримаємо диски з фільмами, це звичайно буде «Прихідна накладна».</p>
<p>Відкриваємо відповідну гілку в конфігурації і по аналогії з довідниками створюємо новий документ «Прихідна накладна».</p>
<p>Створимо табличну частину «Товар» в якому вкажемо такі колонки: «Товар» –тип даних довідник дисків, кількість, ціна, сума. Доречі, бажано в всіх документах де фігурує ціна та сума писати однаково кількість &#8211; «Кть», ціна &#8211; «Ціна», Сума – «Сума». Оскільки це допоможе уніфікувати процес програмування. Для чого це потрібно трохи нижче.</p>
<p>Тепер створимо форму документу. Загальний вигляд не редагуємо. </p>
<p>Якщо ви запустите «1с:Підприємство 8.1» в режимі «Підприємство» то створивши новий документ (Операції_ Документи – Прихідна накладна) ви побачите що колонку «сума» потрібно заповнювати вручну, що не є добре оскільки автоматизація процесів полягає в тому щоб більшість рутинної роботи робив комп’ютер. Зрозуміло що в більшості систем автоматизації буде багато документів з колонками «Кількість», «Ціна», «Сума». Тому кожен раз писати підпрограмку розрахунку суми не є доцільно краще раз написавши таку програмку використовувати її багато раз. </p>
<p>Підпрограмки для спільного використання в «1с:Підприємство 8.1» створюються в конфігуратор в вітці «Загальні», нас в даному випадку цікавить елемент вітки «Спільні модулі» (зауважте спільних модулів може бути кілька).</p>
<p>Створимо новий спільний модуль «ЗФ» (скорочення від «загальні функції)». </p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0061.jpg"><img title="clip_image006[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="182" alt="clip_image006[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0061_thumb.jpg" width="244" border="0" /></a></p>
<p>Створюємо спільний модуль. </p>
<p>Алгоритм роботи процедури буде такий: процедура отримує посилання на активну стрічку даних табличної частини. І встановлює в колонці «Сума» число рівне добутку кількості на ціну. Для роботи процедури потрібно щоб в табличній частині були колонки з відповідними назвами. </p>
<p>Сама процедура виглядає так:</p>
<p><font color="#0000ff">Процедура ПерерахунокСуми(СтрокаТабличноїЧастини) экспорт</font></p>
<p><font color="#0000ff">СтрокаТабличноїЧастини.сума=СтрокаТабличноїЧастини.кть*СтрокаТабличноїЧастини.ціна;</font></p>
<p><font color="#0000ff">Конецпроцедуры</font></p>
<p>Слово експорт вказує на те що дана процедура доступна зі всіх частин конфігуратора. </p>
<p>Процедура перерахунку суми має викликатись в двох випадках коли змінилась кількість та коли змінилась ціна. Для прив’язки процедури до події зміни ціни в конфігуратор відкриваємо форму документу і клікаємо по відповідному полю табличної частини, після чого натискуємо на лупу на закладці Події коло назви «ПриИзменении» (див. мал.) </p>
<p><a href="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0081.jpg"><img title="clip_image008[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="73" alt="clip_image008[1]" src="http://1c-nik.ru/wp-content/uploads/2009/07/clip_image0081_thumb.jpg" width="244" border="0" /></a></p>
<p>Коли відкриється закладка «Модуль» з вже створеною заготовкою процедури що буде викликатись при зміні кількості ми прописуємо там наступне: </p>
<p><font color="#0000ff">Процедура ТоварКтьПриИзменении(Элемент)</font></p>
<p><font color="#0000ff">ЗФ.ПерерахунокСуми(Элементыформы.Товар.ТекущиеДанные);</font></p>
<p><font color="#0000ff">КонецПроцедуры</font></p>
<p>Де <font color="#0000ff">ЗФ.ПерерахунокСуми()</font> – виклик Спільного модуля ЗФ і процедури цього модуля «ПерерахунокСуми», а Элементыформы.Товар.ТекущиеДанные це передача посилання на дані стрічки табличного елементу форми «Товар». </p>
<p>Аналогічно робимо з колонкою «Сума», оскільки нажаль в «1с:Підприємство 8.1» не реалізовано призначення одного і того самого обробника події для кількох елементів. </p>
<p>Запустіть «1с:Підприємство 8.1» в режимі «Підприємство» та створіть кілька прихідних накладних. </p>
<p>Тепер створимо документ «ПозичивПодивитись» де будуть наступні реквізити:</p>
<p>- Кому (відповідний довідник «Друг»)</p>
<p>- Дата повернення (тип дата)</p>
<p>Та таблична частина Диски з колонками:</p>
<p>- диски </p>
<p>- кількість </p>
<p>- ціна </p>
<p>- сума</p>
<p>(останні три позиції щоб вибити гроші якщо не віддасть <img src='http://1c-nik.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
<p>Для колонок кількість та ціна прописуємо аналогічні процедури як і для прихідної накладної. Тільки не забуваємо що таблична частина називається не «Товар» а «Диски» (де замінити думайте самі <img src='http://1c-nik.ru/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &#160; ).</p>
<p>Ми вчимо програмування по принципу: «Ось басейн вчіться плавати а воду ми дамо пізніше».</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/07/chastyna-druha-dokumenty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
