Имя: Пароль:
1C
1С v8
Помогите с внешним отчетом УТ
,
0 KENT2007
 
05.10.12
10:56
Нужно инвентаризациб чуть переделать
вырезал из штатного документа
1 KENT2007
 
05.10.12
10:57
Перем мВалютаРегламентированногоУчета Экспорт;

// Валюта курс и кратность для пересчета регламентированных сумм
Перем мВалютаУпрУчета Экспорт;
Перем мКурсУпрУчета Экспорт;
Перем мКратностьУпрУчета Экспорт;

Перем мРазрешитьНулевыеЦеныВРознице Экспорт;

////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ ДОКУМЕНТА

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

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

   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();
   ВыборкаСтрокТовары = Шапка.Товары.Выбрать();

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

   // Выводим данные об организации и складе
   ПараметрыПечати.Вставить("ПредставлениеОрганизации", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,"));
   ПараметрыПечати.Вставить("ПредставлениеСклада", Шапка.ПредставлениеСклада);
   //ПараметрыПечати.Вставить("ВалютаНаименование", СокрЛП(ВалютаПечати));
   //ПараметрыПечати.Вставить("Валюта", ВалютаПечати);
   
   Позиции = Новый Массив;
   
   ИтогСуммы        = 0;
   ИтогСуммыПоУчету = 0;

   Пока ВыборкаСтрокТовары.Следующий() Цикл

       ПараметрыПозиции = Новый Структура;
       ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура);        
       ПараметрыПозиции.Вставить("НомерСтроки", ВыборкаСтрокТовары.НомерСтроки);        
       ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары));
       ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество);
       ПараметрыПозиции.Вставить("КоличествоПоУчету", ВыборкаСтрокТовары.КоличествоПоУчету);
       ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения);
       ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена);
       ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма);
       ПараметрыПозиции.Вставить("СуммаПоУчету", ВыборкаСтрокТовары.СуммаПоУчету);

       Если ПараметрыПечати.ВыводитьКоды Тогда
           ПараметрыПозиции.Вставить("КодАртикул", ВыборкаСтрокТовары.КодАртикул);
       КонецЕсли;

       ИтогСуммы        = ИтогСуммы        + ВыборкаСтрокТовары.Сумма;
       ИтогСуммыПоУчету = ИтогСуммыПоУчету + ВыборкаСтрокТовары.СуммаПоУчету;

       #Если ВнешнееСоединение Тогда
       WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПозиции);
       #КонецЕсли

       Позиции.Добавить(ПараметрыПозиции);

   КонецЦикла;
   
   ПараметрыПечати.Вставить("Позиции", Позиции);

   // Вывести Итого
   ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(ИтогСуммы));
   ПараметрыПечати.Вставить("ВсегоПоУчету", ОбщегоНазначения.ФорматСумм(ИтогСуммыПоУчету));    

   #Если ВнешнееСоединение Тогда
   WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПечати);
   #КонецЕсли
   
   Возврат ПараметрыПечати;
   
КонецФункции //ПолучитьДанныеДляПечатиДокумента()    


Процедура КнопкаСформироватьНажатие(Кнопка)
         ПараметрыПечати = ПолучитьДанныеДляПечатиДокумента();
   
   Если ПараметрыПечати.ВыводитьКоды Тогда
       ОбластьШапки  = "ШапкаСКодом";
       ОбластьСтроки = "СтрокаСКодом";
   Иначе
       ОбластьШапки  = "ШапкаТаблицы";
       ОбластьСтроки = "Строка";
   Конецесли;

   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИнвентаризацияТоваровНаСкладе_ИнвентаризацияТоваровНаСкладе";

   Макет = ПолучитьМакет("ИнвентаризацияТоваровНаСкладе");

   // Выводим шапку накладной
   ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
   ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
   ТабДокумент.Вывести(ОбластьМакета);

   // Выводим данные об организации и складе
   ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
   ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
   ТабДокумент.Вывести(ОбластьМакета);

   // Выводим шапку таблицы
   ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
   Если ПараметрыПечати.ВыводитьКоды Тогда
       ОбластьМакета.Параметры.Колонка = ПараметрыПечати.ИмяКолонкиКодов;
   КонецЕсли;

   ТабДокумент.Вывести(ОбластьМакета);

   ОбластьМакета    = Макет.ПолучитьОбласть(ОбластьСтроки);

   Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл    

       Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда
           Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
           Продолжить;
       КонецЕсли;

       ОбластьМакета.Параметры.Заполнить(ПараметрыПозиции);

       ТабДокумент.Вывести(ОбластьМакета);

   КонецЦикла;

   // Вывести Итого
   ОбластьМакета                        = Макет.ПолучитьОбласть("Итого");
   ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
   ТабДокумент.Вывести(ОбластьМакета);

       // Печать упр. формы документа
   

   // Выводим подписи к документу
   ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
   ТабДокумент.Вывести(ОбластьМакета);
   
   //ТабДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка,ИмяМакета);
   //ТабДокумент = ПечатьДокумента();

   //Возврат ТабДокумент;

   
КонецПроцедуры
2 Eugeneer
 
05.10.12
10:57
пошел за таблетками для телепатов...
3 KENT2007
 
05.10.12
10:58
при нажатии сформировать ничего не происходит
4 KENT2007
 
05.10.12
10:58
нужно дабавить иерархии с группами из справочника номенклатура
5 Eugeneer
 
05.10.12
11:00
http://subsystems.ru/catalog/39/124/

в скайп стукнись бесплатно дам. сделаешь чо хочешь.
6 KENT2007
 
05.10.12
11:01
блин на этом компе нет,
может movchan23 rambler.ru
7 Eugeneer
 
05.10.12
11:02
Отправил
8 KENT2007
 
05.10.12
11:02
http://subsystems.ru/catalog/39/124/ так он прикручен к доку инвентаризация?
9 Eugeneer
 
05.10.12
11:03
(8) не помню. там код по иерархи.. прикрутишь сам если чо.
пароль на модуль  - 1
10 KENT2007
 
05.10.12
11:08
спасибо попробую
11 KENT2007
 
05.10.12
11:10
тут бы саму инвентаризацию внешнию прикрутить
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший