K one C

17.07.2018

Вам это будет интересно!

  • Давно пора сказать

  • Вечерние размышления… ;)))




  • Иногда бывает нужно Jсделать на основе одних документов комплект других (например на основе расходных - приходные или наоборот). Но не просто так, а с возможностью выбора и редактирования. и тут может помочь такая штука, как таблица значений, прицепленная к форме отчета, с возможностью редактирования. Правда, непонятно зачем это нужно, но на проклубе и инфостарте есть преизрядное количество подобных обработок, и навороченных и не очень, а ведь сложного ничего в этом нет, все предельно просто, можно сделать и самому.

    В самом же модуле все легко и просто:

    Чтобы не мучаться – выдергиваем две функции из стандартной конфигурации: «Сумма прописью» и «ФРМ», можно и без них, но как-то так получилось J , да и нужны эти функции для вывода печатных форм, которые тоже выдернуты из стандартной конфигурации. Впрочем, если вам не лень - можно и самостоятельно нарисовать.
    Вот кусочек уже есть. Дальше процедурка, приявязанная к кнопке«получить список расходных», которая тупо запихивает в таблицу значенийрасходные накладные за период, ничего сложного:

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

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

    Все эти расходные попадают в табл.знач. с флагом «V», и в дальнейшем будут участвовать в обработке, но это не всегда нужно, поэтому и присутствует этот флаг в таблице. А чтобы выключить накладные – используем процедуру «КликНаСписке». Если мышкой щелкаем по колонке с флагом – флаг изменяется, если по колонке с документом – открывается документ.

    //******************************************************************************
    //Выбор/отказ расходных накладных
    Процедура КликНаСписке(ТЗ)
    Если ТЗ.ТекущаяСтрока()>0 Тогда
    Если ТЗ.ТекущаяКолонка()="Флаг" Тогда
    Если ТЗ.Флаг="V" Тогда
    ТЗ.Флаг="";
    Иначе
    ТЗ.Флаг="V";
    КонецЕсли;
    Иначе
    ОткрытьФорму(ТЗ.Док);
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры

    Ну а теперь можно и перетащить из нужных накладных товар во вторую табличку, если товар импортный,то ГТД приходится тащить из счетов-фактур (это справедливо для бухгалтерской конфигурации, в других конфигурациях может быть и иначе):
    //******************************************************************************
    //из выбранных расходных выдергиваются товары с количеством и ГТД, сворачиваются
    //и пихаются в таблицу Тов для дальнейшего проставления цены
    Процедура Сформ()
    ТабПоз=СоздатьОбъект("ТаблицаЗначений");
    ТабПоз.НоваяКолонка("Товар");
    ТабПоз.НоваяКолонка("Количество");
    ТабПоз.НоваяКолонка("ГТД");
    ТабПоз.УдалитьСтроки();
    Тов.Очистить();
    Тов.НоваяКолонка("Товар");
    Тов.НоваяКолонка("ГТД");
    Тов.НоваяКолонка("Количество");
    Тов.НоваяКолонка("Сумма","Число",15,2);
    РасхНакл.ВыбратьСтроки();
    Пока РасхНакл.получитьСтроку()=1 Цикл
    Если РасхНакл.Флаг="V" Тогда
    РН=РасхНакл.Док;
    РН.ВыбратьСтроки();
    Пока РН.получитьСтроку()=1 Цикл
    ТабПоз.новаяСтрока();
    ТабПоз.Товар=РН.Товар;
    ТабПоз.Количество=РН.Количество;
    ДокПодч= СоздатьОбъект("Документ");
    ДокПодч.ВыбратьПодчиненныеДокументы(,,РН);
    Пока ДокПодч.ПолучитьДокумент() > 0 Цикл
    Если ДокПодч.Вид() ="СчетФактура" Тогда
    РасшифрДок= ДокПодч.ТекущийДокумент();
    РасшифрДок.ВыбратьСтроки();
    Пока РасшифрДок.ПолучитьСтроку()=1 Цикл
    Если ТабПоз.Товар=РасшифрДок.Товар Тогда
    ТабПоз.ГТД=РасшифрДок.ГТД;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    ТабПоз.Свернуть("Товар,ГТД","Количество");
    ТабПоз.Выбратьстроки();
    Пока ТабПоз.ПолучитьСтроку()=1 Цикл
    Тов.НоваяСтрока();
    Тов.Товар=ТабПоз.Товар;
    Тов.ГТД=ТабПоз.ГТД;
    Тов.Количество=ТабПоз.Количество;
    Тов.Сумма=0;
    КонецЦикла;
    Тов.Сортировать("Товар");
    КонецПроцедуры
    //Потом проставляем закупочные цены (точнее суммы):
    //******************************************************************************
    // используетсяпри вводе цены в таблицу Тов
    Процедура приКлике()
    кол="";
    стр="";
    значс=0;
    ВвестиЧисло(значс,"Введите сумму",15,2,);
    Тов.ТекущаяКолонка(,кол);
    стр=Тов.ТекущаяСтрока();
    Тов.УстановитьЗначение(стр,кол,значс);
    КонецПроцедуры

    Ну а теперь можно и напечатать:
    //******************************************************************************
    //Заполнение ивывод печатных форм
    Процедура Печ()
    Табл1=СоздатьОбъект("Таблица");
    Табл2=СоздатьОбъект("Таблица");
    Табл3=СоздатьОбъект("Таблица");
    Если Торг12=1 Тогда
    Табл2.ИсходнаяТаблица("Торг-12");
    Табл2.ВывестиСекцию("Шапка");
    Табл2.ВывестиСекцию("ЗаголовокТаблицы");
    Тов.ВыбратьСтроки();
    Пока Тов.получитьСтроку()=1 Цикл
    // а тут пишем что куда, поглядывая в табличку с печатной формой
    Табл2.ВывестиСекцию
    ("Строка");
    КонецЦикла;
    Табл2.ВывестиСекцию("Всего");
    Табл2.ВывестиСекцию("Подвал");
    Табл2.Показать();
    КонецЕсли;КонецПроцедуры

    Ну а при открытии надо определить состав колонок для таблиц:

    //*****************************************************

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

    Процедура ПриОткрытии()
    РасхНакл.НоваяКолонка("Флаг","Строка",1,," ",2,,);
    РасхНакл.НоваяКолонка("Док","Документ",,,"Документ");
    Тов.НоваяКолонка("Товар");
    Тов.НоваяКолонка("ГТД");
    Тов.НоваяКолонка("Количество");
    Тов.НоваяКолонка("Сумма");
    КонецПроцедуры

    Вот и все! Есть вопросы?

    Ах, да!




























































































































    Вам это будет интересно!

  • Давно пора сказать

  • Вечерние размышления… ;)))




  • Последние новости


    Пробковые утеплители

    Одним из высокоэффективных современных утепляющих материалов считаются плиты, изготовленные из измельченной коры пробкового дуба. Среди их главных достоинств следует назвать небольшой вес, твердость, прочность и устойчивость к гниению и образованию плесени при воздействии влаги. Пробковые теплоизолирующие материалы не повреждаются грызунами и не разрушаются...
    Читать далее »

    Приложение

    Утепление окна стекловолокном – обязательное условие, при котором значительно снизятся теплопотери. Теплоизоляция кирпичного дома плитами пенополистирола – надежный способ сделать жилище теплым и комфортным. Как сделать это правильно, показано на рис. 50. ...
    Читать далее »

    Пенополистирольные утеплители

    В последнее время на строительном рынке особенно высоким спросом пользуется теплоизолирующий материал URSA XPS. Его выпускают в форме жестких плит, размер которых составляет 1,25 × 0,6 м. Сырьем для производства данного материала является экструдированный пенополистирол, обладающий структурой с закрытыми ячейками. URSA XPS – это утеплитель, главными свойствами которого являются устойчивость к воздействию влаги и высока...
    Читать далее »

    Торфяные утеплители

    Для повышения теплоизоляционных характеристик ограждающих конструкционных элементов нередко используют торфоизоляционные плиты. Их производят на основе плохо разложившегося торфа, который отличается волокнистой структурой. В процессе обработки сырье формуют и выдерживают в условиях высокой температуры. Плотность торфоизоляционных плит составляет от 170 до 260 кг/м3, а коэффициент теплопроводности равен 0,06 Вт/(м°С)...
    Читать далее »

    Теория теплопередачи - основа строительства

    Современные физики говорят о 3 явлениях, выражающих теплопередачу, – теплопроводности, излучении и конвекции. Каждое из них обладает собственными характеристиками. Так, при определении свойств однородных твердых тел говорят о теплопроводности. Ее суть заключается в способности одного объекта передавать тепло другому при соприкосновении либо посредством промежуточного проводника (рис. 3). ...
    Читать далее »

    Древесно-стружечные теплоизолирующие материалы

    Одним из наиболее распространенных в настоящее время древесно стружечных утеплителей является фибролит. Его получают путем смешивания древесной стружки, портландцемента и воды. Древесная стружка, или древесная шерсть, при этом должна состоять из лент длиной не менее 50 см. В некоторых случаях портландцемент нередко заменяют магнезиальным вяжущим компонентом. Перед технологической обработкой древесную стружку, вы...
    Читать далее »

    Стеклянные утепляющие материалы

    Технология изготовления стекловаты во многом сходна с методом производства минеральной ваты. В качестве основного сырья выступают мел либо известняк, кварцевый песок и сульфат натрия либо сода. Кроме того, для получения этого утеплителя могут использоваться и остаточные продукты стекольной промышленности. Стеклянная вата состоит из тончайших волокон, которые получают путем вытягивания из предварительно расплавле...
    Читать далее »