Название: Автоматизированный бухгалтерский учет в программном комплексе «1С-М52 Предприятие» (Меркулова Т.А)

Жанр: Информационные системы и технологии

Просмотров: 1296


5.2. программные средства разработки документов

Атрибуты Документов

НомерДок — номер Документа

При помощи атрибута НомерДок можно получать и задавать строковое

значение поля НОМЕР выбранного Документа.

Пример:

Осиование=Внд()+"№"+СокрП(НомерДок)+"от"+ДатаДок";

ДатаДок - дата Документа

При помощи атрибута ДатаДок можно получать и задавать строковое значение

поля ДАТА выбранного Документа.

Пример:

Процедура ВводНового()

// устанавливаем дату документа

ДатаДок=РабочаяДата();

Валюта—Константа .ДефВалютаЗакупки;

// устанавливаем дату выборки периодических реквизитов на дату документа

Валюта.ИспользоватьДату(ДатаДок);

// устанавливаем дату курса валюты на дату документа

Дата_Курса=ДатаДок;

Если Чнсло(Валюта.Код)=Число(Констаита.БазоваяВалюта.Код) Тогда

// если базовая валюта, то записываем курс основной валюты i Вал=Констаита .ОсновнаяВалюта; Вал ,ИспользоватьДату(ДатаДок);

Иначе // для других валют записываем их собственный курс

Курс=Вал.Текущ_курс;

КонецЕсли;

Фирма=Коистанта.ДефФирма; Валюта Прежн=Валюта; Курс_Прежн=Курс;

КонецПроцедуры

<Реквизнт> - значение поля <Реквизит>

При помощи атрибута <Реквизит> можно получать и задавать значение поля <Реквизит> выбранного Документа. В тексте программного модуля под термином <Реквизит> представляется имя конкретного реквизита шапки или многострочной части Документа, созданного в конфигураторе. Реквизиты многострочной части Документа имеют смысл только при выбранной строке.

НомерСтрокн — номер строки многострочной части Документа.

При помощи атрибута НомерСтроки можно получать и задавать числовое значение номера строки многострочной части Документа. Данный атрибут имеет смысл только прн выбранной строке. Пример:

Процедура ЗаписьДвиженнйРегнстров() Регистр .ТовЗап.Склад=Склад; ВыбратьСтрокиО; Пока (ПолучитьСтроку()>0) Цикл

Регнстр.ПривязыватьСтроку(НомерСтроки);

Регистр.ТовЗап .Товар=Товар;

Регистр.ТовЗап.Количество=Количество;

Регнстр.ТовЗап.Стоимость=Стоимость;

Регистр.ТовЗап.ДвнжениеРасходВыполнить(); КонецЦнкла; КонецПроцедуры

Функции работы с Документами •  Вид() — возвратить идентификатор вида Документа. Функция Вид возвращает строку - идентификатора Документа (как он описан в конфигураторе). Пример:

Процедура ВводНаОсновании(ДокОснование)

// процедура выполняется в зависимости от вида документа Если (ДокОснование.Вид()=''ПриходнаяРеализ") нли (ДокОснование.Вид()="РасходнаяРеализ"). Тогда

КонецПр оцедуры

• Ъыбратъ(Подсказка) — вызвать диалоговое окно для выбора Документа. Функция Выбрать вызывает диалоговое окно для выбора Документа и затем устанавливает выбранный  Документ в качестве текущего. Возвращаемое численное значение: 0 — если не выбран, 1 — если выбран. Данная функция

 

I

может   использоваться   только   для   переменных,    созданных функций

СоздатьОбъект.

Пример:

Доку^СоздатьОбъект("Докумеит.НаклПрих");

// вызываем диалог выбора документа

Если Доку.Выбратъ("Найти Документ")>0 Тогда

// удаляем выбранный документ

Доку.Удалитъ(); КонецЕслн

Выбран () — возвратить <Ьлаг выбора.

Функция Выбран возвращает число со значением 1 - если конкретный Документ в данный момент выбран, 0 — если Документ не выбран.

ТекущийДокументО - возвратить значение Документа.

Функция ТекущийДокумент возвращает значение, которое содержит выбранный Документ. Функция позволяет использовать в программе полученное значение Документа.

 

Пример:

Если Режим="Подробный" Тогда

// используем объект типа Документ общего вида

Док=СоздатьОбъект(" Документ");

// откроем выборку документов

Док.ВыбратъДокументы(ДатаНачало.ДатаКонец);

// Цикл выбора документов

Пока Док.ПолучнтьДокумент()>0 Цикл

// присвоим переменной ТекДок значение найденного документа ТекДок=Док.ТекущийДокумент();

КонецЦикла; j КонецЕсли; I

Итог(ИлтРеквшита) — возвратить итоговое значение реквизита Документа. Функция Итог возвращает числовое итоговое значение — сумму по значениям реквизита многострочной части всех строк. Реквизит задается параметром ИмяРеквизита.

Данная функция может быть использована только для тех реквизитов Документов, для которых установлено свойство "Итог по колонке" (закладка "Дополнительные" свойств реквизита документа в конфигураторе). Пример:

Процедура Выч_суммы накл() Сумма=Количество*Цена;

 

// вычислим полную сумму по накладной СуммаНакл=Итог("Сумма"); Фир=СоздатьОбъект("Справочник.Фирмы"); Фир.ИспользоватьДату(ДатаДок); Фир.НайтиЭлемент(Фирма); // вычислим НДС по накладной НДС=СуммаНакл*Фир.НДС; КоиецПроцедуры;

КолнчествоСтрокО — возвратить количество стпок в Документе. Функция КолнчествоСтрок возвращает количество строк в многострочной части Документа.

Пример:

Сообщить("Документ:"+Вид()+"№м+НомерДок+"от"+ДатаДок+"в спецификации"+КоличествоСтрок()+"строк");

СравннтьТАО — сравнить Документ с Точкой актуальности итогов. Функция СравннтьТА сравнивает Документ с ючкой актуальности итогов, сверяя дату и время Документа с датой и временем ючки актуальности итогов. Возвращаемые численные значения:

-1 (минус единица) — если дата и время Документа меньше даты и времени Точки актуального итогов.

О — если дата и время Документа равно дате и времени Точки актуальности итогов.

+1 (плюс единица) - если дата и время Документа больше даты и времени Точки актуальности итогов. Пример:

Процедура ЗаписьДвиженийРегистров()

// это предопределенная процедура, здесь Документ непосредственно //  доступен.   Поэтому   применяем  функции   без   ссылки   на объект "Документ".

Если СравннтьТА()>0 Тогда

// если документ после ТА, вызываем процедуру

ПроводкаДокументаБудущемЧислом(); ИначеЕсли СравнитьТА()<0 Тогда

// если документ до ТА, вызывает процедуру

ПроводкаДокументаЗадннмЧнсломО; // Вызов процедуры Иначе

// если документ до ТА, вызывает процедуру ПроводкаДокумента(); КонецЕсли; КонецПропедуры;

Итоги Актуальные) — возвратить флаг актуальности итогов.

Функция ИтогиАктуальны сообщает программному модулю — выполняется ли проведение Документа в реальном времен^ нли задним числом.

Возвращаемое численное значение: 1 — итоги актуальны,

О - нет.

Данная функция доступна только в модуле движения регистров Документа в предопределенной процедуре ЗаписьДвизкеннйРегнстров»

ПроведенО — возвратить благ пппволки.

Функция Проведен возвращает число со значением Г.- если конкретный Документ в данный момент проведен, 0 — если Документ не проведен. Пример:

Процедура ПолучитьПроведениые() Док=СоздатьОбъект("Документ");

// Откроем выборку документов Док. ВыбратьДокументы(ДатаНачало, ДатаКонец);

// Цикл выбора документов Пока Док. ПолучнтьДокументО>0 Цикл

Если Док.Проведен()>0 Тогда

// для проведенных документов выведем сообщение Сообщнть(Строка(Док.Внд()>ь"№"+ +Док.НомерДок+"от"+Док.ДатаДок):

КонецЕслн; КонецЦикла; ЕСонецПроцедуры

ГрупповаяобработкаО - возвратить флаг групповой обработки. Функция    ГрупповаяОбработка    сообщает    программному модулю выполняется ли проведение Документа группой или по одному. Возвращаемое численное значение: 1 — групповая обработка, 0 — по одному.

Данная функция доступна только в модуле движения регистров Документа в предопределенной процедуре ЗаписьДвиженийРегистров.

Пример: j Процедура ЗаписьДвиженийРегистров() | Если ГрупповаяОбработка()>0 Тогда j

// если групповая проводка документов, то вызываем процедуру ПроводкаДокументаГруппой(); Иначе

// если не групповая проводка документов, то вызываем процедуру ПроводкаДокументаОдиночного();

КонецЕсли; КонецПроцедуры

ПолучнтьДокументО — получить из выборки следующий Документ. Функция ПолучнтьДокумент выбирает следующий Документ в последовательности выборки, открытой перед этим при помощи процедуры ВыбратьДокументы. Данная функция используется для организации цикла по Документам. Возвращаемое численное значение:

1 — если Документ выбран успешно,

О — если Документ не нвйден (отсутствует).

Данная функция может использоваться только для переменных, созданных функцией СоздатьОбъект. Пример:

Если Режим="Подробный" Тогда

Док= СоздатьОбъект("Документ");

// Откроем выборку документов

Док. ВыбратьДокументы(ДатаНачало, ДатаКонец);

// Цикл выбора документов

Пока Док. ПолучитьДокумеит()>0 Цикл

// присвоим переменной ТекДок значение найденного документа ТекДок=Док.ТекущийДокумент(); КонецЦнкла: КонецЕсли;

ПолучитьСтроку() - получить из выборки следуюЩую строку Документа. Функция ПолучнтьСгроку выбирает следующую строку Документа в последовательности выборки, открытой перед этим при помощи процедуры ВыбратьСтроки. Возвращаемое численное значение 1 - если строка выбрана успешно, 0 — если строка кончилась. Данная функция используется для организации цикла по строкам Документа.

Пример:

Процедура ЗапнсьДвижеиийРегнстров() Регистр.ТовЗап.Склад=Склад;

// открывает выборку строк спецификации документа ВыбратьСтрокн();

// цикл выбора строк спецификации документа Пока (ПолучитьСтроку()>0) Цикл

Регистр .Пр ивязыватьСтроку(НомерСтроки);

Регистр. ГовЗап.Товар=Товар;

Регистр .ТовЗап.Количество= Количество;

Регистр.ТовЗап.Стоимость=Стоимость;

Регистр.ТовЗап.ДвнжениеРасходВыполнить();

 

КонецЦнкла; КонецПроцедуры;

Процедуры работы с Документами

•    ВыбратьДоументы {damaU датаТУ- открыть выбопку Документов. Процедура ВыбратьДоументы открывает выборку всех Документов всех видов с интервале с дата! по дата2. (Если дата2=0, то считается: что до Точки Актуальности).

Данная   процедура   может   использоваться   только   для переменных, созданных функцией СоздатьОбъект. Пример:

Если Режим="Подробный" Тогда

Док= СоздатьОбъект("Документ");

// открываем выборку документов

Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

// цикл получения документов

Пока Док.ПолучнтьДокумент()>0 Цикл ТекДок=Док. ТекущийДокумент();

КонецЦнкла; КонецЕсли;

•    ВыбратьПодчннениыеДокументы (датаС, датаПо, Документ)- открыть выборку подчиненных Документов.

Процедура ВыбратьПодчиненныеДокументы открывает выборку всех Документов, подчиненных заданному Документу в интервале с датаС по датаПо. (Если датаПо=0, то считается, что выборка до Точки Актуальности).

Данная   процедура   может  использоваться   только   для переменных, созданных функцией СоздатьОбъект. Пример:

// Проверка того, что были документы по этому счету ДокТест=СоздатьОбъект(" Документ");

// открываем выборку документов ДокТест.ВыбратьПодчнненныеДокументы('01.0180','31.12.99ПоСчету);

// получение документа Если ДокТест.ПолучитьДокумент()=1 Тогда

Предупрежд,ение("Были отгрузки по данному документу"); КонецЕсли;

• ВыбратьСтрокиО — открыть выборку стпок.

Процедура ВыбратьСгрокн открывает выборку строк многострочной части Документа. Дальнейшая выборка строк осуществляется при помощи функции По лу чнтьСтро ку. Пример: - см. раньше.

НайтиДокумент (Документ)- найти Документ по -значению.

Процедура НайтиДокумент выполняет поиск Документа по значению, заданному параметром Документ. Данная процедура используется для позиционирования на конкретном Документе.

Данная   процедура   может   использоваться   только   для переменных, созданных функцией СоздатьОбъект. Пример:

Процедура УдалДок(Докум)

Док^СоздатьОбъект("Документ.НаклПрих");

// позиционируем созданный объект на заданном документе

Док.НайтиДокумен(Докум);

Если Док.Выбран()>0 Тогда

// если документ найден, то удалим его

Док.Удалить(); Иначе

Предупрезкдение("Неверно задан документ!"); КонецЕсли; КонепПроцедуры;

НайтиПоНомеру^ш/ер, дата) — найти Документ по номеру. Процедура НайтиПоНомеру находит Документ по значению номера. В качестве второго параметра задается любая дата из диапазона, в котором нужно искать Документ с данным номером. Поиск зависит от выбранного в конфигураторе способа уникальности номеров (по месяцу, году и др.). Данная процедура может использоваться только для переменных, созданных функцией СоздатьОбъект.

Пример:

Если ВвестнЧнсло(Ном."Введите номер накладной",5,0)=1 Тогда

ВыбДок=СоздатьОбъект("Документ.РасхНакл");

// позиционируем документ по заданному номеру

ВыбДок.НайтнПоНомеру(Строка(Ном),Дата(0));

Если ВыбДок.Выбран()=1 Тогда

ДокКредита=ВыбДок.ТекущийДокумент();

КонецЕсли; КонецЕсли;

ПолучнтьСтрокуПоНомеру {номер, дата)- получить строку по номеру.

Процедура ПолучнтьСтрокуПоНомеру устанавливает в качестве текущей строки спецификации Документа строку с заданным номером (не порядковым, а те^который записан в строке, т.к. могут быть пропуски). Пример:

Процедура УдалЗаданнойСтроки(Док,Стр) Если Док.Выбран()=1 Тогда

// если переданный параметр содержит значение документа, то найдем в нем //строку спецификации

Док. ПолучнтьСтрокуПоНомеру(Стр);

// удалим найденную строку спецификации документа

Док.УдалнтьСтроку(); Иначе

Предупреждеиие("Документ не выбран !"); КоиецЕслн; КонецЕсли;

•  Новый ()- начать ввод нового Документа.

Данная процедура может использоваться только для переменных, созданных функцией СоздатьОбъект.

Записать() — записать Документ. Пример: Док.Запнсать();

УдалитьО — удалить Дою/мент.

Процедура . Удалить удаляет выбранный Документ. Данную процедуру разрешено применять только для непроведенных Документов.

Данная   процедура   может   использоваться   только   для переменных, созданных функцией СоздатьОбъект. Пример:

Док^СоздатьОбъект("Документ.НаклПрих"); Если Док.Выбрать("Найти Документ")>0 Тогда

Док.Удалить(); | КонецЕсли; I

НоваяСтрокаО - добавит hobvio строку.

Процедура НоваяСтрока добавляет новую строку с очередным порядковым

номером в многострочную часть Документа.

Пример:

Процедура ОбработкаПодбора(Выб)

Кол=0;

Если ВвестиЧисло(Кол, "Введите количество", 10,0)=1 Тогда // добавим новую строку в спецификацию

НоваиСтрока();

Товар=Выб;

УстанЦеныРасх(Контекст); Количество=Кол; Выч_суммы_накл(Коитекст); АктнвнзироватьСтроку(); КонецЕслн; КонецПроцедуры;

УдалитьСтрокуО — удалить строку спецификации Документа.

 

Процедура УдалнтьСтроку удаляет текущую строку из многострочной части Документа.

Пример:

Док.УдалнтьСтроку();

УстановнтьВремя (Часы, Минуты, Секунды)- установить время Документа. Процедура УстановнтьВреми устанавливает время Документа в соответствии с заданными параметрами Часы. Минуты, Секунды. Данная процедура недоступна в контексте формы Документа.

Пример:

Док=СоздатьОбъект("Документ.НаклПрих"); Бслн Док.Выбрать("Найти Документ")>0 Тогда

Док. УстановнтьВремя(13,0,0); КоиецЕслн;

ПолучитьВремя (Часы, Минуты, Сек}>нды)- прочитать время Документа. Процедура ПолучитьВремя возвращает время Документа в переданные для этого параметры Часы, Минуты, Секунды.

Пример:

Функции ВремяДокумента(Док) Бслн Док.Выбран()>0 Тогда

Док. ПолучитьВремя(Ч,М,С);

Возврат "Документ записан в"+Ч+*'час"+М+"мин."+С+"с"; Иначе

Возврат "Документ не выбран"; КонецЕслн; КоненФу нкпин;

АвтоВремиНачалоДняр — создавать новые Документы — на начало дня. Процедура АвтоВремяНачалоДня устанавливает режим, при котором новые Документы заносятся на начало дня.

Пример:

Процедура УстВремяДок(Док,Режим) Если Режим—'Начало" Тогда

Док. АвтоВремяНачалоДня(); Иначе Если Режим="Конец" Тогда

Док. АвтоВремяКонецДни(); Иначе Если Режим="Текущее" Тогда

Док. Авто Времяекущее(); Иначе

Док.АвтоВремяОтключнть(); КонецЕсли; КонецПроцедуры

АвтоВремяКонецДняО -- создавать новые Документы — на конец дня. Процедура АвтоВремяКонецДня устанавливает режим, прн котором новые Документы заносятся на конец дня.

Пример:

(см. предыдущий пример)

АвтоВремяТекущее О- создавать новые Документы — на текущее воемя. Процедура АвтоВремяТекущее Устанавливает режим, при котором новые Документы заносятся на текущее время.

Пример:

Процедура УстВремяДок(Док,Режим) Если Режим—'Начало'' Тогда

Док.АвтоВремяНачалоДня(); Иначе Если Режим="Конец" Тогда

Док.АвтоВремиКоиецДня(); Иначе Если Режим—'Текущее" Тогда

Док.АвтоВремяТекущее(); Иначе

Док. АвтоВремяОткл ючнть(); КонецЕсли;

КонецПроцедуры j

•    АвтоВремяОтключнтьО - создавать новые Документы — на установленное воемя.

Процедура АвтоВремяОтключнть устанавливает режим, при котором новые Документы      заносятся      с      временем      установленным процедурой У становнтьВремя. Пример: см. предыдущий пример.

Команды организации механизма заполнения Документа

Следующие процедуры и функции предназначены для реализации особого механизма заполнения Документов методом полбора необходимых реквизитов из Справочника. Реальным примером может служить процесс заполнения спецификации накладной путем выбора нужных товаров из Справочника ТОВАРЫ.

ОткрытьПодбо о(ВидСправочнша, ИмяФормы)   - открыть Справочник для подбора значений в Документ-Пример:

Процедура Подбор()

ОткрытьПодбор("Товары","ФормаСписка"); КоиецПроцедуры

УстановнтьЗначеннеВПодбореЩл№/'екеизц?ш,   Значение)  - установить значение реквизита диалога подбора.

Процедура УстановитьЗначениеВПодборе используется для того, чтобы в окне диалога, открытом для подбора значения, установить значение некоторого реквизита диалога (он может быть затем использован для отражения некоторой информации в информационных элементах диалога подбора значения).

Данную     процедуру     следует     использовать     после процедуры ОткрытьПодбор. Пример:

Процедура ПодборПоКаталогу() Режим="Каталог";

ОткрытьПодбор("Товары","ДляПодбора"); // установим в форме подбора реквизит "Склад" для того, чтобы там в списке // товаров отобразить остатки товаров на нужном Складе. Значение Склада // берется из реквизитоа текущего документа, который в данном контексте //непосредственно доступен.

УстановнтьЗначеинеПоПодборе("Склад",Склад); КоиецПроцедуры |

Следующие три оператора предназначены для использования в предопределенной процедуре ОбработкаПодбора.

ПолучитьЗначеннеИзПодбора(Вьг/\%г.эд:енц£) - получить значение из Формы подбора значения.

Функция ПолучитьЗначеннеИзПодбора, которая вызывается в контексте-Документа, позволяет получить результат выражения, выполненного в контексте Формы Подбора значения (т.е. получить любые данные из той формы, например выбранный элемент списка Справочника подбора значения). Возвращаемое значение - результат вычисления выражения, выполненного в контексте Формы Подбора значения. Данную процедуру следует использовать

только после вызова процедуры ОткрытьПодбор.

Пример:

Процедура ОбработкаПодбора(Выб)

Кол=0;

Если ВвестиЧнсло(Кол, "Введите количество",10,0)=1 Тогда НоваяСтрока();

Товар=Выб;

УстанЦеныРасх(Контекст); Количество=Кол; Вьтч_суммы_накл(Контекст); АктнвизнроватьСтрокуО; Активнзнровать("Цена"); КонецЕсли;

СкладИзПодбора=ПолучнтьЗиаченнеИзПодбора("Склад:''+Склад); КонепПроцедуры

Активизировать (ИмяРеквизита)- высветить для редактирования реквизит строки Документа.

Процедура Активизировать выполняет визуальную активацию для редактирования нужного реквизита строки Документа в Форме Редактирования Документа после выхода из предопределенной процедуры ОбработкаПодбора. Данная процедура предназначена для использования в предопределенной процедуре ОбработкаПодбора.

•    АктнвизнроватьСтрокуО - высветить текущую строку Документа. Процедура АктнвнзнроватьСтроку выполнить визуальную активацию текущей с строки Документа в Форме Редактирования Документа после выхода из предопределенной процедуры ОбработкаПодбора. Данная процедура предназначена для использования в предопределенной процедуре ОбработкаПодбора.

Предопределение Процедуры работы с Документами

ОбработкаПодбора (Элемент)- предопределенная Процедура обработки подбора значения.

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

Процедура ОбработкаПодбора(Знач) НоваяСтрока();

Товар=Знач;

Знач-ИспользоватьДату(ДатаДок); Цена=Знач.Цена; Сообщнть(Знач.Цена); Сообщнть(Знач.МОЛ.Наименоваине); АктнвнзнроватьСтрокуО; КонецПроцедуры

• ВводНаОсноваинн  (ДокументОснованиё)- предопределенная процедура

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

Процедура ВводНаОснованнн(ДокОснование) Если (ДокОснование.Внд()^"ПриходнаяРеализ") ИЛИ (ДокОснование.Вид()=*'РасходнаяРеализ") Тогда

ПризнакРеализатора=Перечисление. ПризнакРеализаторов.Реализатор_клиент;

ДатаДок^РабочаяДатаГ);

Валюта=Коистанта.БазоваяВалюта;

Валюта.Испол ьзоватьДату( ДатаДок);

Дата_Курса=ДокОснование.Дата_Курса;

Курс= ДокОснование.Курс;

НДС- ДокОснование.НДС;

СН= ДокОснованне.НС;

Фирма= ДокОснование.Фирма;

Основание^ ДокОснование.Основание.Вид ()+"№"+ СокрЩДокОснование.НомерДок)+ "от"+ ДокОснование.ДатаДок; ДокОснование.ВыбратьСтрокиО; Пока ДокОснование.ПолучнтьСтроку()=1 Цикл

НоваяСтрокаО;

Товар=ДокОснование.Товар;

Цена=ДокОснование.Цена;

Единица==ДокОснование.Единица;

Коэффициент^ ДокОснование.Коэффициент;

Количество=ДокОснование.Количество;

Сумма=ДокОснование.Сумма; КонецЦикла; Иначе

Предуирежаенне("Этот Документ можно вводить только на основании накладных по реализации!");

ВводНового(); КонецЕслн;

Валюта_Прежн=Валюта;

Курс_Г1режн=Курс; КонецПроцедуры

• ВводНовогоО - предопределенная процедура "Ввести Документ Процедура ВводНового - предопределенная процедура. Она не является встроенной процедурой языка. Для нее зарезервировано только ключевое слово и синтаксис описания. Тело процедуры должно быть написано самим разработчиком в программном модуле локшьного контекста Документа. Вызов процедуры ВводНового на исполнение производиться в системе 1С:Торговля неявно после выбора пункта меню "Действия" - "Новый". Пример:

Процедура ВводНового(); ДатаДок=РабочаяДата();

Валюта=Константа.ДефВалютаПродажи;

Валюта.ИспользоватьДату(ДатаДок);

Дата_Курса=ДатаДок;

Если Число(Валюта.Код)=Чнсло(Ко11станта.БазоваяВалюта.Код) Тогда

// У базовой валюты курс=1, поэтому отображаем курс Основной валюты Константа. ОсновнаяВалюта. Испол ьзоватьДату (ДатаДок);

Курс= Константа.ОсновнаяВалюта.Текущ_курс; Иначе

Курс^ВалютаюТекущкурс;

КонецЕсли;

Фирма—Константа.ДефФирма;

Клиент=Константа.ДефПокупатель;

КоиецПроцедуры;

•    ЗаписьДвиженнйРегнстровО   -   предопределенная   процедура модуля движений регистров.

Процедура ЗапнсьДвиженнйРегнстров - предопределенная процедура. Она не является встроенной процедурой языка. Для нее зарезервировано только ключевое слово и синтаксис описания. Тело процедуры должно быть написано самим разработчиком в программном модуле локального контекста Документа "Алгоритм движения регистров". Вызов процедуры ЗапнсьДвижеинйРегнстров на исполнение производит .ся в системе 1С Торювля неявно при выполнении команды провести Документ. Пример:

Процедура ЗаписьДвиженнйРегистров() Регнстр.ТовЗап.Склад=Склад; ВыбратьСтроки(); Пока(ПолучитьСтроку()>0) Цикл Регистр.ТовЗап.Товар=Товар; Регистр.ТовЗап.Количество=Количество; Регнстр.ТовЗап.ДвиженнеРасходВыполнить(); КонецЦнкла; КоиецПроцедуры