<?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-pidpryjemstvo/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>Частина десята «Створення звітів» ч.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>Частина сьома &#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>Частина четверта &#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>Регістри накопичення</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>Ніби початок</title>
		<link>http://1c-nik.ru/2009/03/niby-pochatok/</link>
		<comments>http://1c-nik.ru/2009/03/niby-pochatok/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 07:14:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Блог починаючого програміста]]></category>
		<category><![CDATA[1с Підприємство]]></category>

		<guid isPermaLink="false">http://1c-nik.ru/?p=1</guid>
		<description><![CDATA[Багато хто працює з системою «1с Підприємство» але більшість і не задумується як функціонує дана система, які механізми задіяні тут чи там. Проте доволі часто виникає ситуація коли потрібно зробити щось не передбачене в системі. Тоді починається пошук літератури, якщо цим  займеться програміст, або пошук виконавця в разі якщо це потрібно бухгалтеру. Причому ситуація інколи [...]]]></description>
			<content:encoded><![CDATA[<p>Багато хто працює з системою «1с Підприємство» але більшість і не задумується як функціонує дана система, які механізми задіяні тут чи там. Проте доволі часто виникає ситуація коли потрібно зробити щось не передбачене в системі. Тоді починається пошук літератури, якщо цим  займеться програміст, або пошук виконавця в разі якщо це потрібно бухгалтеру. Причому ситуація інколи буває смішною для вирішення проблеми потрібно буває натиснути лише 1-2 клавіші. Проте бувають і протилежні  ситуації елементарна проблема виливається в грандіозну переробку системи. Цей блог буде присвячений отриманню навиків програмування в системі «1с:Підприємство 8.1». Почнемо ми з азів. А для того щоб не робити щось абстрактне ми будемо вчитись розробляти систему «Відеотека» &#8211; облік компакт-дисків з фільмами.</p>
<p>Вчитись створювати конфігурацію ми будемо повторюючи курс офіційної книжки 1с: «Практическое пособие разработчика» Ну що ж почнемо</p>
]]></content:encoded>
			<wfw:commentRss>http://1c-nik.ru/2009/03/niby-pochatok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

