Создание формы документа
Прежде всего, следует заметить, что до сих пор мы использовали предопределенные формы объектов, которые система 1С:Предприятие создавала для нас сама «по умолчанию». Теперь же у нас возникла необходимость слегка изменить логику работы формы документа, а значит, нам придется создать свою собственную форму документа «ПриходнаяНакладная» для того чтобы в ней мы могли описать тот алгоритм, который нам нужен. Вернемся в конфигуратор и откроем окно редактирования объекта конфигурации «ПриходнаяНакладная». В этом окне нас интересует закладка «Формы». Как мы видим, ни одна из основных форм документа пока не задана. Для того чтобы создать форму документа, нажмем на символ лупы в поле ввода: Создадим форму документа. Система вызовет еще один полезный инструмент разработчика —конструктор форм. Этот инструмент также построен по принципу «мастеров» — ввод данных в определенной последовательности и передвижение кнопками «Далее» и «Назад».
Сразу нажмем кнопку «Готово», согласившись тем самым со всем, что нам предложила система. Обратите внимание, что в дереве объектов конфигурации у объекта конфигурации Документ «ПриходнаяНакладная» появилась форма «ФормаДокумента», а на экране открылось окно редактора форм, содержащее эту форму: Новая форма документа и окно редактора форм
Как видите, форма документа «ПриходнаяНакладная» содержит большое количество всевозможных полей. Эти поля называются элементами управления. Они имеют разное назначение и разное поведение, которое соответствует их назначению. Однако все они служат для того, чтобы отображать информацию, хранящуюся в базе данных и организовывать интерактивную работу с этой информацией. Сейчас мы обратим свое внимание только на те элементы управления, которые нас интересуют — это три поля ввода, расположенные в колонках «Количество», «Цена» и «Сумма»: Интересующие нас элементы управления.
Мы хотим, чтобы каждый раз, когда меняется значение в поле «Количество» или в поле «Цена», в поле «Сумма» автоматически устанавливалось значение равное Количество*Цена. Очевидно, что для этого нужно написать на встроенном языке команду похожую на Сумма = Количество*Цена, которая будет выполняться при изменении значения поля «Количество» или «Цена». Создание процедуры обработки события в модуле формы Щелкните правой кнопкой мыши на поле ввода в колонке «Количество» и откройте для него палитру свойств (пункт контекстного меню Свойства). Прокрутите список до конца, и вы обнаружите перечень событий, которые могут быть связаны с этим полем ввода. С большинством элементов управления связаны различные события, и именно с их помощью разработчик может влиять на ход работы программы. Среди событий, связанных с полем ввода, найдите событие «При изменении». Это событие возникает после изменения значения поля ввода. Щелкните по кнопке с лупой в конце поля ввода, и система создаст заготовку процедуры обработчика этого события в модуле нашей формы. Модуль — это «хранилище» для текста программы на встроенном языке. В конфигурации существует большое количество модулей, которые расположены в различных ее точках. Они могут принадлежать некоторым объектам конфигурации (например, формам), а могут существовать сами по себе (принадлежать всей конфигурации в целом). Текст программы, содержащийся в модулях, будет использоваться платформой в заранее известные моменты работы системы 1С:Предприятие. 

В модуль формы добавим следующий текст: ПроцедураМатериалыКоличествоПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные; СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество* СтрокаТабличнойЧасти.Цена; КонецПроцедуры Объясним назначение этих строк. В первой строке мы обращаемся к программному объекту ЭлементыФормы. Этот объект является коллекцией значений, содержащей все элементы управления, расположенные на нашей форме. Каждый элемент управления формы можно получить, указав его имя в качестве свойства объекта ЭлементыФормы. В данном случае мы обращаемся к элементу управления с именем «Материалы» (ЭлементыФормы.Материалы). Этот элемент управления отображает строки табличной части нашего документа. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТабличноеПоле — ТекущиеДанные. Таким образом, в результате выполнения первой строки переменная СтрокаТабличнойЧасти будет содержать объект ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная.Матери алы, в котором находятся редактируемые данные. Во второй строке вычисляется сумма как произведение количества и цены. Объект ДокументТабличнаяЧастьСтрока. позволяет обратиться к данным конкретной колонки, указав имя колонки в качестве свойства объекта (например, СтрокаТабличнойЧасти.Количество). Теперь посмотрим, как это работает. В окне программы откроем список документов «ПриходнаяНакладная» и откроем любой из двух созданных нами документов. Если теперь вы поменяете количество в любой строке документа, то сумма в строке будет пересчитана автоматически.
01.03.2016 250.56 Кб 98 1178_aza_1179_stan_tarikhy_shpor_2.docx
01.03.2016 397.31 Кб 22 12.doc
01.03.2016 300.54 Кб 19 13.doc
01.03.2016 190.46 Кб 15 15.doc
01.03.2016 32.5 Кб 232 1_filosofia_alphabit 2015.docx
01.03.2016 1.27 Mб 27 1С8.0 практика.doc
25.11.2018 270.34 Кб 6 2.3(йцуке).doc
01.03.2016 33.58 Кб 12 2.docx
01.03.2016 55.13 Кб 15 20 правильных ответов из 25 на 4.docx
01.03.2016 88.47 Кб 56 200 ТЕСТ ПО СОЦ. РУСС..docx
01.03.2016 3.51 Mб 20 2992_ospanova_a.k_ekologiya_jane_turakhti_damu.pdf
Ограничение
Для продолжения скачивания необходимо пройти капчу:
Создание форм для заполнения и печати в Excel
Вы можете создать форму в Excel, добавив в книгу элементы управления содержимым, такие как кнопки, флажки, списки и поля со списками. После этого другие пользователи смогут заполнить эту форму в приложении Excel и при желании распечатать ее.
Шаг 1. Отображение вкладки «Разработчик».
- В меню Excel выберите элемент Параметры.
- В разделе Разработка выберите Представление.
- В разделе Показывать на ленте установите флажок Вкладка «Разработчик».
Шаг 2. Добавление и форматирование элементов управления содержимым
- На вкладке Разработчик выберите элемент управления, который хотите добавить.
- На листе щелкните место, куда нужно вставить элемент управления.
- Чтобы задать свойства элемента управления, щелкните его, удерживая нажатой клавишу CONTROL, и выберите пункт Формат элемента управления.
- В окне Формат объекта задайте такие свойства элемента управления, как шрифт, выравнивание и цвет.
- Повторите действия 1–4 для каждого добавляемого элемента управления.
Шаг 3. Защита листа, содержащего форму
- В меню Сервис наведите указатель на пункт Защита и выберите команду Защитить лист.
- Выберите нужные параметры защиты.
- Сохраните и закройте книгу.
Совет: Чтобы продолжить редактирование после защиты формы, в меню Сервис наведите указатель на пункт Защита и выберите команду Снять защиту листа.
Шаг 4. Проверка формы (необязательно)
При необходимости вы можете проверить форму, прежде чем распространять ее.
- Защитите форму, как указано в описании шага 3.
- Откройте форму еще раз, заполните ее обычным способом и сохраните как копию.
Практикум 2. Создание документов
Итак, фирма предоставляет услуги по ремонту телевизоров и установке стиральных машин. И в том, и в другом случае требуются некоторые материалы, которые расходуются в процессе оказания этих услуг. Поэтому двумя важнейшими событиями в хозяйственной жизни нашей организации будут являться поступление материалов и оказание услуг .
Для отражения этих событий в базе данных мы создадим два документа:
- « Приходная накладная »;
- «Оказание услуги».
«Приходная накладная» будет фиксировать факт поступления в нашу организацию необходимых материалов, а документ «Оказание услуги» будет фиксировать оказание услуг и расход материалов, которые используются при оказании этих услуг.
Создание документа ПриходнаяНакладная

- Создайте новый объект конфигурации Документ1. Имя документу дайте «ПриходнаяНакладная».
- На закладке «Данные» создадим реквизит документа с именем «Склад» и типом СправочникСсылка.Склады. Для этого:
- над окошком Реквизиты кликнете по иконке ;
- в окне «Свойства: Реквизит» задайте имя документа «Склад»;
- в поле «Тип» по стрелочке (по треугольнику) из ниспадающего списка выбираем нужный нам тип СправочникСсылка.Склады.

- Добавьте табличную часть с именем «Материалы».
- У этой табличной части создайте четыре реквизита:
- «Материал» с типом СправочникСсылка. Номенклатура ;
- «Количество» с типом Число (длина → 15, точность → 3, неотрицательное);
- «Цена» с типом Число (длина → 15, точность → 2, неотрицательное);
- «Сумма» с типом Число (длина → 15, точность → 2, неотрицательное).

- Запустите 1С:Предприятие в режиме отладки.
- Выполните команду Операции в†’ Документы в†’ Приходная накладная. Система откроет одну из основных форм документа → основную форму списка.
- Создайте новый документ. Система автоматически присвоит номер новому документу и отметит дату создания документа. В качестве склада выберем «Основной». Теперь нам остается заполнить только табличную часть приходной накладной . Заполните ее материалами так, как показано на рисунке:

- Аналогичным образом создать вторую накладную, которая будет приходовать следующие материалы для установки стиральных машин:

В создаваемых накладных значения в столбце «Сумма» нам пришлось вводить вручную. Это неудобно и возникает естественное желание автоматизировать работу документа так, чтобы сумма вычислялась автоматически всякий раз при изменении цены или количества материалов в строке.
Для этого нам потребуется создать собственную форму документа, а затем воспользоваться возможностями встроенного языка.
Создание формы документа
До сих пор мы использовали предопределенные формы объектов, которые система 1С:Предприятие создавала для нас сама «по умолчанию».
Теперь у нас возникла необходимость слегка изменить логику работы формы документа, а значит, нам придется создать свою собственную форму документа « ПриходнаяНакладная » для того, чтобы в ней мы могли описать тот алгоритм, который нам нужен.
- Вернитесь в конфигуратор и откройте окно редактированияобъекта конфигурации «ПриходнаяНакладная»:
- в конфигураторе дважды кликните по документу «ПриходнаяНакладная». Откроется окно «Документ ПриходнаяНакладная».
- Перейдите на закладку «Формы».
- Для того чтобы создать форму документа, нажмите на символ лупы в поле ввода Документа:

- Система вызовет еще один полезный документ разработчика → конструктор форм. Этот инструмент также построен по принципу «мастеров» — ввод данных в определенной последовательности и передвижение кнопками «Далее» и «Назад».
Сразу нажмем кнопку «Готово», согласившись тем самым со всем, что нам предложила система.
Обратите внимание, что в дереве объектов конфигурации у объекта конфигурации Документ «ПриходнаяНакладная» появилась форма «ФормаДокумента», а на экране открылось окно редактора форм, содержащее эту форму.
Форма документа «ПриходнаяНакладная» содержит большое количество всевозможных полей. Эти поля называются элементами управления. Они имеют разное назначение и разное поведение, которое соответствует их назначению. Однако все они служат для того, чтобы отображать информацию, хранящуюся в базе данных и организовывать интерактивную работу с этой информацией.
- В данном случае нас интересуют три элемента управления → это три поля ввода, расположенные в колонках «Количество», «Цена» и «Сумма».
Создание процедуры обработки события в модуле формы
1. Щелкните правой кнопкой мыши на поле ввода в колонке «Количество» и откройте для него палитру свойств (пункт контекстного меню Свойства)

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

3. Среди событий найдите событие «ПриИзменении». Это событие возникает после изменения значения поля ввода.
Кликните по кнопке с лупой в конце поля ввода, и система создаст заготовку процедуры обработчика этого события в модуле нашей формы.

4. В модуль формы добавим следующий текст:

Объясним значения этих строк.
В первой строке мы обращаемся к программному объекту ЭлементыФормы. Этот объект является коллекцией значений, содержащей все элементы управления, расположенные на нашей форме. Каждый элемент управления формы можно получить, указав его имя в качестве свойства объекта ЭлементыФормы. В данном случае мы обращаемся к элементу управления с именем «Материалы» (ЭлементыФормы.Материалы).
Этот элемент управления отображает строки табличной части нашего документа. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТабличноеПоле → ТекущиеДанные. Таким образом, в результате выполнения первой строки переменная СтрокаТабличнойЧасти будет содержать объект ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная. Материалы, в котором находятся редактируемые данные.
Во второй строке вычисляется сумма как произведение количества и цены. Объект ДокументТабличнаяЧастьСтрока. позволяет обратиться к данным конкретной колонки, указав имя колонки в качестве свойства объекта. Например, СтрокаТабличнойЧасти.Количество.
5. Закроем все окна и посмотрим, как это работает, запустив 1С:Предприятие в режиме отладки.
6. В окне программы откройте список документов «ПриходнаяНакладная» и откройте любой из двух созданных вами документов. Если вы теперь поменяете количество в любой строке документа, то сумма в строке будет пересчитана автоматически.
7.Вернитесь в конфигуратор и для поля «Цена» сделайте то же самое.
Создание процедуры обработки события в общем модуле
Если подумать о будущем, то будет понятно, что подобное автоматическое заполнение поля «Сумма» может нам понадобиться и в других документах. Поэтому лучше будет поместить расчет суммы в некотором «общедоступном» месте, чтобы разные документы, имеющие аналогичные реквизиты табличной части, могли использовать этот алгоритм.
Для описания таких «общедоступных» мест служат объекты конфигурации Общий модуль, расположенные в ветке Общие в†’ Общие модули. Процедуры и функции, содержащиеся в этих модулях, могут быть доступны для любых объектов конфигурации.
Для того чтобы алгоритм, выполняемый при обработке события, был доступен для разных документов, мы создадим общий модуль и перенесем в него нашу процедуру расчета суммы. А в документе просто оставим вызовы этой процедуры из общего модуля.
1. Создайте объект конфигурации Общий модуль в ветке Общие в†’ Общие модули и назовите его «РаботаСДокументами».
2. Он будет содержать следующий текст:

Ключевое слово Экспорт в конце оператора «Процедура» как раз указывает на то, что эта процедура может быть доступна из других программных модулей.
3. Вернитесь в нашу форму (в дереве конфигурации Документы → ПриходнаяНакладная → Формы → ФормаДокумента).
4. В открывшемся окне Документ ПриходнаяНакладная: ФормаДокумента на нижней панели щелкните по клавише .
5. В каждом модуле формы измените текст обработчика:

Таким образом, теперь вместо непосредственного расчета суммы мы будем вызывать процедуру из общего модуля, и передавать ей в качестве параметра нужную нам строку табличной части.
6. Запустите 1С:Предприятие в режиме отладки и убедитесь, что все работает так как надо.
Создание документа ОказаниеУслуги
1. Создайте новый объект конфигурации Документ «ОказаниеУслуги».
2. На закладке «Данные» создайте реквизиты:
- «Склад», тип СправочникСсылка.Склады;
- «Клиент», тип СправочникСсылка.Клиенты;
- «Мастер», тип СправочникСсылка.Сотрудники.
3. Создайте табличную часть «ПереченьНоменклатуры» с реквизитами:
- «Номенклатура», тип СправочникСсылка.Номенклатура;
- «Количество», тип Число, длина 15, точность 3, неотрицательное;
- «Цена», тип Число, длина 15, точность 2, неотрицательное;
- «Сумма», тип Число, длина 15, точность 2, неотрицательное.
4. Создайте основную форму документа.
5. Для полей ввода колонок «Количество» и «Цена» создать обработчик события «ПриИзменении», в котором вызвать процедуру «РассчитатьСумму» из общего модуля «РаботаСДокументами».
6. В результате документ «ОказаниеУслуги» в дереве конфигурации будет выглядеть следующим образом:

7. Запустите 1С:Предприятие в режиме отладки и убедитесь (опираясь на рисунки, помещенные ниже), что при вводе цены и количества в табличную часть документа « ОказаниеУслуги » сумма пересчитывается по нашему алгоритму.



Теперь наш документ «ОказаниеУслуг» должен иметь следующий вид:

Создание регистра накопления ОстаткиМатериалов
Прежде всего, нас интересует информация о том, сколько и каких материалов есть у нас на складе. Для накопления такой информации мы создадим регистр «ОстаткиМатериалов».
1. Создайте новый объект конфигурации Регистр накопления с именем «ОстаткиМатериалов».
2. На закладке «Данные» создадим измерения регистра:
- «Материал» с типом СправочникСсылка.Номенклатура;
- «Склад» с типом СправочникСсылка.Склады.
3. Создадим ресурс «Количество» с длиной 15 и сточностью 3.
4. В результате этих действий регистр « ОстаткиМатериалов » должен иметь следующий вид:

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

Создание движений документа ПриходнаяНакладная
Движения документа → это записи в регистрах, которые создаются в процессе проведения документа и отражают изменения, производимые документом.
1. Откройте окно редактирования объекта конфигурации Документ «ПриходнаяНакладная».
2. На закладке «Движения» в списке регистров конфигурации отметим регистр накопления «ОстаткиМатериалов»:

Обратите внимание, что сразу после отметки выбранного регистра становится доступной кнопки «Конструктор движений». Этим конструктором мы и воспользуемся:

3. Конструктор устроен просто. В списке «Регистры» перечислены регистры, в которых документ может создавать движения. В нашем случае там пока один регистр «ОстаткиМатериалов».
В списке «Реквизиты документа» должны находиться исходные данные для создания движений. А в таблице «Поле → Выражение» должны быть заданы формулы, по которым будут вычисляться значения измерений и реквизитов регистра при записи движений.
Обратите внимание, что по умолчанию конструктор предлагает нам создавать движения прихода (символ «+» рядом с названием регистра) по регистру «ОстаткиМатериалов». Это нас вполне устраивает, ведь документ «ПриходнаяНакладная» и должен приходовать материалы.
В поле выбора «Табличная часть» выберем табличную часть нашего документа — «Материалы». Список реквизитов документа автоматически заполнится реквизитами нашей табличной части.
4. Нажмите кнопку «Заполнить выражения». В нижнем окне сформируется соответствие полей и выражений.

Как видите, конструктор движений установил соответствия подходящим образом:
- в качестве материала в регистр будет записан материал из табличной части документа;
- в качестве склада → склад, указанный в шапке документа;
- в качестве количества → количество из табличной части документа.
5. Нажмите «ОК» и посмотрите, какой текст сформировал конструктор в модуле объекта:

Конструктор создал обработчик события ОбработкаПроведения объекта конфигурации Документ и поместил его в модуль объекта.
Внутри обработчика расположен цикл, который предназначен для перебора строк табличной части нашего документа. В цикле обращение к табличной части документапроисходит по имени (Материалы), а строки табличной части документа представляют собой коллекцию значений, для перебора которой можно использовать конструкцию Для Каждого …¦ Из …¦ Цикл.
Объект встроенного языка ДокументОбъект имеет свойство Движения. Оно возвращает коллекцию наборов записей регистров, которые принадлежат этому документу. К набору записей документа, принадлежащему конкретному регистру, можно обратиться, указав через точку имя этого регистра.
Таким образом, в первой строке тела цикла мы добавляем к набору записей, который создает наш документ в регистре, новую запись и сохраняем ее в переменной Движение.
Затем мы присваиваем нужные значения всем полям этой записи и после перебора всех строк документа (после завершения цикла) «одним махом» записываем в регистр ОстаткиМатериалов весь набор записей движений документа.
6. Посмотрим как это работает. Запустим 1С:Предприятие в режиме отладки и откроем одновременно два окна:
- список документов ПриходнаяНакладная;
- список регистра накопленияОстаткиМатериалов.
7. Откроем Приходную накладную №– 1 и нажмем ОК. Обратите внимание, что при проведении приходной накладной появляются соответствующие записи в регистрах накопления.
8. Аналогичные действия проделайте и с документом Приходная накладная №– 2.
Создание движений документа ОказаниеУслуги
1. Создайте движения документа ОказаниеУслуги.
При использовании конструктора будьте внимательны и обратите внимание на то, что документ ОказаниеУслуги должен расходовать материалы.
2. При автоматическом заполнении поля Материал не заполнится.
Если мы оставим это так, как есть, то в регистре накопления в строках с типом Движение регистра → расход имя номенклатуры фиксироваться не будет. Чтобы избежать этого, надо выбрать поле Материал и в поле Реквизиты документа дважды кликнуть по строке ТекСтрокаПереченьНоменклатуры.Номенклатура.

Таким образом, имя номенклатуры для строк регистра накопления будет выбираться из табличной части документа.
3. Запустим отладку и проведем документы оказания услуг и убедимся, что в регистре накопления он создал верные движения.
Сформированные таким образом движения этого документа будут не совсем правильны, поскольку в документе ОказаниеУслуги, в отличие от документа ПриходнаяНакладная, содержатся не только расходуемые материалы, но и услуги. Поэтому в регистр ОстаткиМатериалов попали записи и о расходуемых услугах, что неправильно.
Пока мы ничего не будем делать с движениями, которые сформировал конструктор, но как только познакомимся с перечислениями, мы внесем в обработчик проведения необходимые изменения.
Другие материалы по теме:
Нас находят: как создать собственную форму документа в 1с, документ оказание услуг в конфигураторе, 1c бухгалтерия предприятия 8 редакция 3 0 как создать документ на основании документа, Лекция ИТ Создание и корректировка форм документов и расчётов Задание реквизитов документа, как создать 2 документа с 5 основными и 5 табличными реквизитами в конфигураторе, как сделать форму документа и в ней процедуру 1с, 80754, 88639, работа в конфигураторе 1с форма документа, 1с как добавить логику в документ

Мы на Facebook
© Учебный центр «Стимул», 2011-2023. info@stimul.kiev.ua
Вирус скуки
Продолжение одинэсной темы, ответы на книгу Радченко, занятие 2 и 3.
Какими характерными особенностями обладает документ?
Документ предназначен для описания информации о совершенных хозяйственных операциях или произошедших событий в организации. Отличительная особенность документа — способность проведения — событие, которое отображает документ, повлияло на состояние учета. Так же документ привязан к конкретному моменту времени.
Для чего предназначены реквизиты и табличные части документа?
Реквизиты предназначены для описания наборов одинаковой для всех документов этого типа информации, стандартные реквизиты — дата и номер документа;
Табличные части — для описания набора информации, которая одинакова по структуре, но различна по количеству;
Какие существуют основные формы документа?
Форма объекта, форма списка, форма для выбора;
Что такое проведение документа?
Проведение — действие, которое выполняет изменение других данных системы на основании информации документа;
Как создать объект конфигурации Документ и описать его структуру?
В конфигураторе, структура — на вкладке «Данные»
Как создать новый документ и заполнить его данными?
В 1С:Предприятие создать новый документ. Данные заполняются как с помощью поля выбора, так и с клавиатуры;
Как создать собственную форму документа?
Документ — изменить — формы — добавить
Что такое конструктор форм?
Конструктор форм — это инструмент разработчика для создания форм, построенные по принципу «мастеров»: ввод данных в определенной последовательности;
Что такое редактор форм?
Редактор форм используется для создания и редактирования форм объектов прикладного решения. Редактор форм обеспечивает редактирования диалога формы, её реквизитов и редактирование модулей;
Что такое элементы формы?
Основной интерфейсный инструмент, служит для управления и отображения записей Базы Данных; Примеры: кнопка, табличное поле, поле ввода и др;
Что такое события и чем они связаны?
Событие — процессы, возникающие при соблюдении определенных условий во время функционирования формы. Событие связаны с элементами формы.
Что такое обработчик события и как его создать?
Выбираем элемент формы, находим в палитре свойств событие, жмем на значок лупы. В модуле создастся шаблон процедуры — обработки события;
Что такое модуль и для чего он нужен?
Модуль — хранилище для текста программы на встроенном языке.
Зачем нужны общие модули?
Общий модуль служит для хранения процедур, которые могут быть доступны для любых объектов конфигурации;
Что такое типообразующие объекты?
Объекты конфигурации, для которых может быть указан тип информации, содержащийся в объекте, называют типизированными объектами конфигурации. Некоторые объекты (справочники, документы, перечисления) могут сами образовывать типа, следовательно, они являются типообразующими объектами
