Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
2017-11-16 | 359 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Простым примером такого действия является установка нового оклада сотруднику в справочнике Сотрудники при проведении, например, штатного расписания.
Процедура ОбработкаПроведения()
УстановитьРеквизитСправочника (Сотрудник, "Оклад", НовыйОклад, ДатаДок);
КонецПроцедуры
Здесь Сотрудник - значение реквизита документа типа "Справочник", через него в справочнике позиционируется нужный элемент, а "Оклад" - периодический реквизит соответствующего элемента. Этот оператор можно использовать только в предопределенной процедуре ОбработкаПроведения(). Теперь при просмотре истории периодического реквизита вы увидите кроме самого значения, ещё и дату установки (соответствует дате документа), и документ, который установил данное значение.
Номер документа и нумераторы
Номер документа
При интерактивном или программном создании нового документа ему автоматически присваивается новый уникальный номер. Его можно получить или установить какой-нибудь другой с помощью атрибута НомерДок:
Док = СоздатьОбъект("Документ.Счет");
Док.Новый();
Сообщить("Документу был автоматически присвоен № " + Док.НомерДок);
Док. НомерДок = "000013";
Сообщить("Установлен новый № " + "000013");
Префикс номера
Если вы используете распределенную базу или желаете, чтобы документы обозначали пользователя, который их создал, полезно пользоваться префиксами - одним или двумя символами, которые подставляются перед собственно номером документа, но при этом "входят" в номер. Не забывайте, что префикс должен быть строковым ("Сч-" или "01", или "1-"), а в свойствах документа должен быть установлен строковый тип номера.
|
Док = СоздатьОбъект("Документ.Счет");
ПрефДок = Лев(ИмяПользователя(),2);
Док. ПрефиксНомера (ПрефДок + "-");
Док.Новый();
Этот метод изменяет префикс по умолчанию, или возвращает текущее значение префикса, если использовать метод без параметра. А вот другая возможность:
Док = СоздатьОбъект("Документ.Счет");
ПрефДок = Лев(ИмяПользователя(),2);
Док.Новый();
Док. УстановитьНовыйНомер (ПрефДок + "-"); // такая нумерация работает очень корректно
В отличие от предыдущего этот метод устанавливает (а точнее переустанавливает введенный по умолчанию при исполнении метода Новый()) новый номер с указанным префиксом.
Что такое нумератор?
Нумератор представляет собой объект метаданных, описывающий правила нумерации документов: тип и длина номера документа, его периодичность, необходимость контроля уникальности. Основное назначение нумератора - обеспечить возможность сквозной нумерации документов разного вида, для чего таким документам назначается одинаковый нумератор.
Периодичность. Этот реквизит устанавливает 2 важные характеристики нумератора: пределы контроля уникальности номеров документов и период повторяемости номеров. Если включен признак контроля уникальности номеров (см. ниже), "Периодичность" устанавливает, в каких пределах осуществлять этот контроль. Например, если установлено "В пределах дня", то уникальность номеров документов будет контролироваться в пределах суток: на следующие сутки номера документов могут повторяться. При включенной автоматической нумерации система будет присваивать очередной порядковый номер каждому новому документу. После завершения периода, установленного в реквизите "Периодичность", нумерация документов начнется с 1.
Длина. Устанавливает максимальную длину номера документа. Не размахивайтесь без нужды, "длинный" номер снижает производительность работы.
Тип. Группа "Тип" позволяет выбрать тип значения для номера документа - числовой или текстовый. Выбор текстового типа номера бывает полезен, когда используется сложная система нумерации документов, и номер документа может включать, помимо цифр, также буквы и символы-разделители.
|
Контроль уникальности. Если эта опция включена, то при вводе нового документа его номер проверяется на уникальность в пределах, установленных в реквизите "Периодичность".
Дата, время и позиция документа
Дата документа
Дата создания (или записи) - обязательный атрибут любого документа. Через него можно получить или назначить дату, с которой будет записан документ:
Док = СоздатьОбъект("Документ.РасходнаяНакладная");
Док.Новый();
Если Док.ДатаДок = '01.01.02' Тогда
..........Сообщить("С Новым Годом!");
КонецЕсли;
Время документа
Кроме даты, позиция документа обозначается временем. С ним можно поступать так:
Часы = 0;
Минуты = 0;
Секунды = 0;
Док.ПолучитьВремя(Часы, Минуты, Секунды); // Прочтем время
Если Часы > 21 Тогда
Предупреждение("Хватит работать по ночам!
|Документ будет помещен в конец дня");
Док.АвтоВремяКонецДня(); // документ запишется на 10 сек позже последнего
ИначеЕсли Часы < 8 Тогда
Предупреждение("Никто не оценит!
|Документ будет записан в начало дня");
Док.АвтоВремяНачалоДня();// документ запишется на 10 сек раньше первого
ИначеЕсли Вопрос("Записать документ с текущим временем?", 4) = 7 Тогда // ответ "Нет"
ВвестиЧисло(ЧасУст, "Укажите час, с которым будет записан данный документ",2,0);
Док.УстановитьВремя(ЧасУст, Минуты, Секунды); // запишется с этим временем
Иначе
Док.АвтоВремяТекущее(); // документ запишется с текущим временем
КонецЕсли;
Позиция документа
В крупных многопользовательских системах часто возникает ситуации, когда новые документы записываются почти одновременно, внутри одной секунды. Но все равно не возникает никаких накладок, т.к. документы разделяются внутри секунды с помощью позиции документа. Она представляет собой специальное 32-х символьное выражение, которое можно прочитать с помощью специального метода:
ПозДокумента = Док.ПолучитьПозицию(); // только чтение!
Позиция имеется только у записанного документа.
Точка актуальности (ТА)
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!