Карта сайта
Обслуживание компьютеров, ремонт компьютеров, 1С предприятие, обслуживание серверов,создание сайтов, продвижение сайтов, доработка 1С предприятие
О компании | Статьи | | Примеры разработки на платформе 8.х

« Назад « На главную

Примеры разработки на платформе 8.х


 


Как создать новый документ?


НовыйДокумент = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент(); 
НовыйДокумент.Дата = ТекущаяДата();

 


Как найти документ?


ИскомыйДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, Дата(2005, 1, 1)); 
Если НЕ ИскомыйДокумент.Пустая() Тогда
// Выполнить действия в случае обнаружения такого документа. …
КонецЕсли;

 


Как открыть форму документа?


Форма = ИскомыйДокумент.ПолучитьФорму(); 
Форма.Открыть();

 


Как изменить значение реквизита и записать документ?


ДокОбъект = СсылкаНаДокумент.ПолучитьОбъект(); 
ДокОбъект.Ответственный = глТекущийПользователь;
ДокОбъект.Записать();

// Запись с проведением документа
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);

// Запись с отменой проведения
ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);

 


Как добавить строку в табличную часть документа, имея ссылку на документ?


ОбъектДок = Док.ПолучитьОбъект(); 
НоваяСтрока = ОбъектДок.Товары.Добавить();

// Заполнить значения реквизитов.
НоваяСтрока.Количество = 10;
НоваяСтрока.Цена = 55;

// Записать документ.
ОбъектДок.Записать();

 


Как удалить строки из табличной части документа?


ОбъектДокумента = Документ.ПолучитьОбъект(); 
ОбъектДокумента.Товары.Очистить();

 


Как перебрать строки документа?


Для Каждого ТекущаяСтрока Из Документ.Товары Цикл 

// Действия со строкой табличной части.
КонецЦикла;


СтаршийИндекс = Документ.Товары.Количество() - 1;
Для Сч = 0 по СтаршийИндекс Цикл

// Действия со строкой табличной части.
КонецЦикла;

 


Как выгрузить табличную часть документа?


ТаблицаТоваровДокумента = Документ.Товары.Выгрузить();

 


Как посчитать итог в табличной части документа?


ВсегоПоКолонкеСумма = Документ.Товары.Итог("Сумма");

 


Как провести документ?


НужныйДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);

 


Как перебрать документы?


ВыборкаДокументов = Документы.Расходная.Выбрать(НачалоГода(ТекущаяДата()), КонецГода(ТекущаяДата())); 
Пока ВыборкаДокументов.Следующий() Цикл
// Действия с документом - элементом выборки,
// его значение содержится в переменной ВыборкаДокументов
КонецЦикла


Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ. РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Контрагент = &Контрагент
| И
| (РеализацияТоваровУслуг.Номер < 100 | ИЛИ | РеализацияТоваровУслуг.Дата < ДАТАВРЕМЯ(2005, 1, 1))
| И
| РеализацияТоваровУслуг.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)";

Запрос.УстановитьПараметр("Контрагент", ОтбКонтрагент);
Запрос.УстановитьПараметр("Номенклатура", ОтбНоменклатура);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
// действия с документом - элементом выборки,
// его значение содержится в переменной Выборка
КонецЦикла;

 


Как пометить на удаление все приходные накладные?


ДокументыВида = Документы.ПоступлениеТоваровУслуг.Выбрать(); 
Пока ДокументыВида.Следующий() Цикл
ДокОбъект = ДокументыВида.ПолучитьОбъект();
ДокОбъект.УстановитьПометкуУдаления(Истина);
КонецЦикла;

 


Как, имея ссылку на документ, создать в базе его копию?


ДокументКопия = ИсходныйДокумент.Скопировать(); 
ДокументКопия.Дата = РабочаяДата;
ДокументКопия.Записать();


ДокументКопия.Дата = ИсходныйДокумент.Дата;

 


Как, имея ссылку на документ, прочитать его движения по регистру?


Запрос = Новый Запрос; 
Запрос.Текст ="ВЫБРАТЬ *
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры КАК ОстаткиНоменклатуры
|ГДЕ
| ОстаткиНоменклатуры.Регистратор = &Регистратор";

Запрос.УстановитьПараметр("Регистратор", ПолеВводаРегистратор);


НаборЗаписейРегистра = Движения.ОстаткиНоменклатуры;
НаборЗаписейРегистра.Прочитать();
Для Каждого Запись из НаборЗаписейРегистра Цикл
// Чтение и модификация очередного движения.
КонецЦикла;


Для Каждого НаборЗаписейРегистра из Движения Цикл
НаборЗаписейРегистра.Прочитать();
Для Каждого Запись из НаборЗаписейРегистра Цикл
// Чтение и модификация очередного движения.
КонецЦикла;
КонецЦикла;

 


Как определить, по каким регистрам документ выполнил движения?


ВЫБРАТЬ ПЕРВЫЕ 1 
"Внутренние заказы" КАК Регистр
ИЗ
РегистрНакопления.ВнутренниеЗаказы КАК ВнутренниеЗаказы
ГДЕ
ВнутренниеЗаказы.Регистратор = &Регистратор

ОБЪЕДИНИТЬ

ВЫБРАТЬ ПЕРВЫЕ 1
"Заказы поставщикам" КАК Регистр
ИЗ
РегистрНакопления.ЗаказыПоставщикам КАК ЗаказыПоставщикам
ГДЕ
ЗаказыПоставщикам.Регистратор = &Регистратор

ОБЪЕДИНИТЬ

ВЫБРАТЬ ПЕРВЫЕ 1
"Размещение заказов покупателей" КАК Регистр
ИЗ
РегистрНакопления.РазмещениеЗаказовПокупателей КАК РазмещениеЗаказовПокупателей
ГДЕ
РазмещениеЗаказовПокупателей.Регистратор = &Регистратор

ОБЪЕДИНИТЬ

ВЫБРАТЬ ПЕРВЫЕ 1
"Товары в резерве на складах" КАК Регистр
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах
ГДЕ
ТоварыВРезервеНаСкладах.Регистратор = &Регистратор

 


Как в табличной части документа удалить строки с нулевым значением реквизита "Количество"?


ОбъектДок = СсылкаДок.ПолучитьОбъект(); 
СтруктураДляПоиска = Новый Структура("Количество", 0);

ТабличнаяЧастьДок = ОбъектДок.Товары;
МассивПустыхСтрок = ТабличнаяЧастьДок.НайтиСтроки(СтруктураДляПоиска);

Для каждого Строка Из МассивПустыхСтрок Цикл
ТабличнаяЧастьДок.Удалить(Строка);
КонецЦикла;

ОбъектДок.Записать();



СтруктураДляПоиска = Новый Структура("Количество", 0);

МассивПустыхСтрок = Товары.НайтиСтроки(СтруктураДляПоиска);

Для каждого Строка Из МассивПустыхСтрок Цикл
Товары.Удалить(Строка);
КонецЦикла;

 


Как очистить колонку "СтавкаНДС" в табличном поле "Товары" уже заполненного документа?


Процедура ТоварыСтавкаНДСПриИзменении(Элемент) 

// Рассчитать реквизиты табличной части.
РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);

КонецПроцедуры // ТоварыСтавкаНДСПриИзменении()



Для Каждого Строка из Товары Цикл
Строка.СтавкаНДС = Неопределено;

// Передать управление на процедуру, вызываемую
// из обработчика события "ПриИзменении" для поля ввода "СтавкаНДС"
ЭлементыФормы.Товары.ТекущаяСтрока = Строка;
РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);

КонецЦикла;

 


Как заполнить значения свойств нового документа на основании существующего?


НовыйСчет = Документы.СчетНаОплатуПокупателю.СоздатьДокумент(); 
ЗаполнитьЗначенияСвойств(НовыйСчет, ДокументЗаказа, , "Дата");

// Заполнить табличную часть Товары.
Для Каждого СтрокаТоваровЗаказа Из ДокументЗаказа.Товары Цикл
ЗаполнитьЗначенияСвойств(НовыйСчет.Товары.Добавить(), СтрокаТоваровЗаказа);
КонецЦикла;

// Заполнить табличную часть ВозвратнаяТара
Для Каждого СтрокаТарыЗаказа Из ДокументЗаказа.ВозвратнаяТара Цикл
ЗаполнитьЗначенияСвойств(НовыйСчет.ВозвратнаяТара.Добавить(), СтрокаТарыЗаказа);
КонецЦикла;

// Заполнить табличную часть Услуги
Для Каждого СтрокаУслугЗаказа Из ДокументЗаказа.Услуги Цикл
ЗаполнитьЗначенияСвойств(НовыйСчет.Услуги.Добавить(), СтрокаУслугЗаказа);
КонецЦикла;

НовыйСчет.ЗаказПокупателя = ДокументЗаказа;

Форма = НовыйСчет.ПолучитьФорму();
Форма.Открыть();

 


Как получить перечень приходных накладных, в которых не заполнены номенклатурные позиции?


Запрос = Новый Запрос; 
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПриходнаяТовары.Ссылка как Накладные
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПриходнаяТовары
|ГДЕ
| ПриходнаяТовары.Номенклатура = &ПустаяНоменклатура";

Запрос.УстановитьПараметр("ПустаяНоменклатура", Справочники.Номенклатура.ПустаяСсылка());

ТаблицаНакладных = Запрос.Выполнить();

 


Как на дату расходной накладной определить курс валюты управленческого учета?


ВЫБРАТЬ 
КурсыВалютСрезПоследних.Валюта КАК ВалютаУпр,
КурсыВалютСрезПоследних.Курс КАК КурсУпр
ИЗ
РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, Валюта В
(ВЫБРАТЬ
УчетнаяПолитикаСрезПоследних.ВалютаУправленческая
ИЗ
РегистрСведений.УчетнаяПолитика.СрезПоследних(&ДатаДокумента, ) КАК УчетнаяПолитикаСрезПоследних )
) КАК КурсыВалютСрезПоследних

 


Как из формы документа вызвать его неоперативное проведение?


Процедура ОсновныеДействияФормыОК(Кнопка) 

ЭтаФорма.ИспользоватьРежимПроведения = ИспользованиеРежимаПроведения.Неоперативный;
ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
Закрыть();

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

 


Как в обработке проведения получить остатки, актуальные на позицию документа?


Запрос.Текст = " ВЫБРАТЬ 
| ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток,
| ВзаиморасчетыСКонтрагентамиОстатки.СуммаУпрОстаток
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ПараметрПериод,
| ДоговорКонтрагента = &Договор
| И
| Сделка =&Сделка) КАК ВзаиморасчетыСКонтрагентамиОстатки";

Запрос.УстановитьПараметр("ПараметрПериод", МоментВремени());

 


Как определить количество документов и количество разных значений реквизита в таблице записей документа?


ВЫБРАТЬ 
КОЛИЧЕСТВО(РегистрацияПростоевВОрганизации.Ссылка) КАК Случаев,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РегистрацияПростоевВОрганизации.ФизЛицо) КАК Работников
ИЗ
Документ.РегистрацияПростоевВОрганизации КАК РегистрацияПростоевВОрганизации
ГДЕ
РегистрацияПростоевВОрганизации.Проведен

 


В последовательность "ПартионныйУчет" добавлено измерение "Организация". Как теперь получить данные по границам последовательности для каждого значения этого измерения?


ТаблицаГраниц = Последовательности.ПартионныйУчет.ПолучитьГраницы("Организация"); 
Для Каждого СтрокаТаблицыГраниц Из ТаблицаГраниц Цикл
Организация = СтрокаТаблицыГраниц.Организация;
ДатаГП = СтрокаТаблицыГраниц.Граница.Дата;
СсылкаГП = СтрокаТаблицыГраниц.Граница.Ссылка;
КонецЦикла;

08 Октябрь 2011 г.



метки:



Вверх

Подписаться на RSS

  • Новости
  • Статьи
  • Разделы статей

    Наши контакты

    +7 922 292-00-34

    +7(343)361-52-00

    Напишите нам через форму!!!

    Быстрая форма связи с нами

     
    Ваше имя?*
    Как с Вами связаться?*
    Опишите вопрос или сообщение*
    Введите код *


    Знаком (*) выделены обязательные поля.
    Каталог интернет ресурсов - ИнфоПитер
    Наверх

    ООО "Бизнес Технологии"© 2010 г.

    Написать автору

    Карта сайта