1c-obrabotki.at.ua Суббота, 08.02.2025, 07:34
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Форма входа

Меню сайта

Категории раздела
Мои статьи [48]

Курс валют
Курс Валют Информер
Российский рубль Российский рубль валюта России
(EUR)//-//
(USD)//-//
(CZK)//-//
(GBP)//-//

Главная » Статьи » Мои статьи

Документы
Введение
Документ — одно из основных понятий системы 1С:Предприятие. При по­мощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и, если необходимо, корректи­ровка. В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумаж­ных документов, являющихся основаниями для тех или иных учетных дейст­вий или расчетов. Структура каждого конкретного вида документа определяется при его соз­дании в конфигураторе. У любого вида документа существует два обязательных реквизита, которые создаются автоматически — дата и номер документа. Дру­гие реквизиты документа определяются в конфигураторе конкретно для каждо­го создаваемого вида документа. В документах выделяются две основные структурные части: шапка доку­мента и многострочная табличная часть, поэтому реквизиты документа можно подразделить на «Реквизиты шапки» и «Реквизиты табличной части». Как правило, в шапке содержатся реквизиты, которые являются общими для всего документа. Реквизиты шапки принадлежат всему документу в целом и принимают только одно значение. Многострочная (табличная) часть документа представляет собой список од­нотипных строк. Реквизиты табличной части принадлежат строке документа, т. е. каждая строка содержит свои собственные значения этих реквизитов.



Создание и удаление документа

Создание нового документа представлено в двух вариантах - непосредственное удаление и пометка на удаление:

&НаКлиенте
Процедура СоздатьНовыйДокумент(Команда)
    
        // Вставить содержимое обработчика.
        Если СоздатьНовыйДокументНаСервере() = 0 Тогда
                Сообщить("Не удалось создать новый документ");
        КонецЕсли;

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

&НаСервере
Функция СоздатьНовыйДокументНаСервере()
    
        Перем НоваяРасходнаяНакладная;
        Перем СтрокаТЧ;
    
        НоваяРасходнаяНакладная=ДокРасходнаяНакладная.СоздатьДокумент();
    
        //Заполняем реквизиты шапки
        НоваяРасходнаяНакладная.Дата=  ТекущаяДата();
        НоваяРасходнаяНакладная.Фирма =Справочники.Фирмы.ОсновнаяФирма;
        НоваяРасходнаяНакладная.Контрагент=Справочники.Контрагенты.НайтиПоКоду("000000001");
        НоваяРасходнаяНакладная.Склад=Справочники.Склады.ОсновнойСклад;
    
        //Заполняем табличную часть
        СтрокаТЧ=НоваяРасходнаяНакладная.ТЧТовары.Добавить();
        СтрокаТЧ.Товар=Справочники.Номенклатура.НайтиПоКоду("000000002");
        СтрокаТЧ.Цена=СтрокаТЧ.Товар.РозничнаяЦена;
        СтрокаТЧ.Количество= 2;
        СтрокаТЧ.Сумма=СтрокаТЧ.Цена*СтрокаТЧ.Количество;
    
        Попытка
                НоваяРасходнаяНакладная.Записать();
                Возврат 1;
        Исключение
                Возврат 0;
        КонецПопытки;
                                           
КонецФункции

Удаление документа:

&НаКлиенте
Процедура УдалитьДокумент(Команда)
    
        // Вставить содержимое обработчика.
        УдалитьДокументНаСервере(0);
    
КонецПроцедуры

&НаСервере

Процедура УдалитьДокументНаСервере(ПометкаУдаления)
    
        // Вставить содержимое обработчика.
        Перем УдаляемыйДокумент;
    
        УдаляемыйДокумент =Документы.РасходнаяНакладная.НайтиПоНомеру("000000004");
        Если ПометкаУдаления = 1 Тогда
                УдаляемыйДокумент.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);
        Иначе
                УдаляемыйДокумент.ПолучитьОбъект().Удалить();
        КонецЕсли;
    
КонецПроцедуры

Перебор табличной части документа

&НаКлиенте
Процедура ПеребратьТабличнуюЧасть()

        Для Каждого СтрокаТЧ ИЗ Объект.ТЧТовары Цикл
                Сообщить(СтрокаТЧ.Номенклатура);
        КонецЦикла;

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

Поиск в табличной части документа

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

&НаСервере
Процедура НайтиТовар(СправочникНоменклатураСсылка)

        Перем Отбор, НайденноеЗначение, Сч;

        Отбор = Новый Структура();
        Отбор.Вставить("Номенклатура", СправочникНоменклатураСсылка);
        НайденноеЗначение = Объект["ТЧНоменклатура"].НайтиСтроки(Отбор);


        Если НайденноеЗначение.Количество() > 0 Тогда

                Сч = 1;
                Пока НайденноеЗначение.Количество() >= Сч Цикл 
                        Сообщить(НайденноеЗначение[0].Наименование);
                        Сч = Сч + 1;
                КонецЦикла;

        КонецЕсли;

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



Источник: http://alsproject.ru/publ/prikladnye_obekty/dokumenty/1-1-0-9
Категория: Мои статьи | Добавил: Sam1488 (24.05.2013)
Просмотров: 1134 | Рейтинг: 0.0/0
Всего комментариев: 0
Погода

Поиск

Новости

Copyright MyCorp © 2025