K one C
Иногда бывает нужно 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 – это утеплитель, главными свойствами которого являются устойчивость к воздействию влаги и высока...Читать далее »
Теплоизоляция - важная составляющая архитектуры здания
О доме, отличающемся от других построек изысканной и оригинальной архитектурой, мечтает каждый. Сегодня реализовать это желание несложно: достаточно всего лишь подготовить смелый проект и необходимые строительные материалы. Современные загородные мини городки удивляют своими необычными строениями с характерными для них сложной конфигурацией, резкой разницей высоты составляющих частей, французскими окнами и т. ...Читать далее »
