Цитата(Ziam @ 18.02.11, 20:03) необходимо зарегистрироваться для просмотра ссылки
Полный код, пожалуйста. А то мы до Пасхи гадать будем.
//***********************
//
Перем фФлагНового;
Перем фФлагПерегрузки;
Перем фТекТовар, фТекЦена, фКол;
Перем фНС1;
// 16/07/2001 ДС
//------------------------------------ ДС 30/05/2001
Функция ВыборВидНДСИзДокОснования(лДокОсн)
Перем лВидНДС;
лСписокВидовНДС=СоздатьОбъект("СписокЗначений");
лПоз=0;
лДокОсн.ВыбратьСтроки();
Пока лДокОсн.ПолучитьСтроку()=1 Цикл
Если лДокОсн.Вид()="ПриходнаяНакладная" Тогда
// Приходная накладная услуги обрабатываем "своим" образом ДС 05/06/2001
Если лДокОсн.Товар.ВидТовара=Перечисление.Неамортизируемые.Услуга Тогда
Если лДокОсн.Производитель<>лДокОсн.ДтКлиент Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если лСписокВидовНДС.НайтиЗначение(лДокОсн.ВидНДСвСтроке)=0 Тогда
лСписокВидовНДС.ДобавитьЗначение(лДокОсн.ВидНДСвСтроке);
КонецЕсли;
КонецЦикла;
Если лСписокВидовНДС.РазмерСписка()=0 Тогда
Предупреждение("Немає товарів, на які виписуються Податкові Накладні");
Возврат ПолучитьПустоеЗначение("Справочник.СтавкиНДС");
ИначеЕсли лСписокВидовНДС.РазмерСписка()=1 Тогда
лВидНДС=лСписокВидовНДС.ПолучитьЗначение(1);
Иначе
Если лСписокВидовНДС.ВыбратьЗначение(лВидНДС,"Вибір ставки ПДВ, по якій виписується Податкова Накладна:",лПоз,0)=0 Тогда
Возврат ПолучитьПустоеЗначение("Справочник.СтавкиНДС");
КонецЕсли;
КонецЕсли;
Возврат лВидНДС;
КонецФункции
//-----------------------------------
Процедура УстановкаСуммы(УстНДС=1)
Если УстНДС=1 Тогда
НДСпоДокументу = (Итог("ПродСумма")+Реквизит4-Реквизит5+Реквизит1) * ВидНДС.ТарифНДС/100;
КонецЕсли;
СуммаПоДокументу=Итог("ПродСумма")+НДСПоДокументу+ННРПоДокументу+Реквизит4-Реквизит5+Реквизит1;
КонецПроцедуры
// ---------------------------------- 17/07/2001 ДС
Процедура РасчетННР()
ННРПоДокументу=ОКР(Итог("ПродСумма")*ВидННР.ТарифНДС/100,2);
УстановкаСуммы(0);
КонецПроцедуры
//-----------------------------------AP 11/02/2000. Док основание.
Процедура УстДокОснование() //для выбора документа-основания
лДок=СоздатьОбъект("Документ");
Если лДок.Выбрать("Вибір видаткової накладної",)=1 Тогда
ДокументОснование=лДок.ТекущийДокумент();
КонецЕсли;
КонецПроцедуры
//-----------------------------------
Процедура ПриВыбореЗакладки(Ном,Значен)
Если Значен=1 Тогда
Форма.ИспользоватьСлой("Основной, Кнопки",2);
ИначеЕсли Значен=2 Тогда
Форма.ИспользоватьСлой("ТабличнаяЧасть, Кнопки",2);
ИначеЕсли Значен=3 Тогда
Форма.ИспользоватьСлой("ЗаПериод, Кнопки",2);
КонецЕсли;
КонецПроцедуры
//-----------------------------------
Процедура ПересчетСуммы()
ПродСумма=Окр(ПродЦена*Количество,2); //AP 24/05/00
КонецПроцедуры
//-----------------------------------
Процедура ДопВыбТовараРасход()
Если Товар.Выбран()=0 Тогда //03/08/2000 OG
Возврат;
КонецЕсли;
Единица=Товар.БазоваяЕдиница;
Коэффициент=1;
КодТовара=Товар.Код;
ДтНаправление=Товар.Направление;
КонецПроцедуры
//-----------------------------------
Процедура Печать()
Перем лТабл;
Перем УсловияПродажи;
НомерДокумента = Прав(НомерДок+НомерДокумента,7);
ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10);
Если Итог("Количество")=0 Тогда
Предупреждение("Невірно, або взагалі не задані рядки. К-сть невідома. Друкувати неможливо!");
Возврат;
КонецЕсли;
Если ПустоеЗначение (Содержание1)=0 Тогда
УсловияПродажи=Содержание1;
Иначе
УсловияПродажи=ДокДоговор;
КонецЕсли;
лТаб=СоздатьОбъект("Таблица");
//AG+IK 01.08.05
Если ДатаДок < Дата('29.07.2005') Тогда
//******было
Если ФС.СуществуетФайл(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn.mxl")=1 Тогда
лТаб.ИсходнаяТаблица(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn.mxl");
Иначе
//******было
лТаб.ИсходнаяТаблица("Таблица");
КонецЕсли;
Иначе
Если ФС.СуществуетФайл(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn2.mxl")=1 Тогда
лТаб.ИсходнаяТаблица(СокрЛП(КаталогБазыДанных())+"Forms\"+"rnn2.mxl");
Иначе
лТаб.ИсходнаяТаблица("Таблица2");
КонецЕсли;
КонецЕсли;
//AG+IK 01.08.05
лТаб.ПараметрыСтраницы(1,,,0,0,0,0,,,,1);
лТаб.ВывестиСекцию("Заголовок");
//формирование шапки
лТаб.ВывестиСекцию("Шапка");
лТаб.ВывестиСекцию("Шапка1");
//лСтавПММ=Константа.СтавкаГСМ.Ставка.Получить(ДатаДок);
ВыгрузитьТабличнуюЧасть(лТабл);
лТабл.Свернуть("ДатаНДС,Товар,Единица","Количество,ПродСумма");
лНС=1;
//Перем по разделу 1
лА1=0;лА2=0;лА3=0;лА4=0;
//Итоги по разделу 1 и накопительная переменная
лБ1=0;лБ2=0;лБ3=0;лБ4=0; лБ=0;
//Перем по разделу 2
лВ1=0;лВ2=0;лВ3=0;лВ4=0;лВ5=0;
//НДС
лГ1=0;лГ2=0;лГ3=0;лГ4=0;лГ5=0;
//Наценка
лН1=0;лН2=0;лН3=0;лН4=0;
//Скидка
лЗ1=0;лЗ2=0;лЗ3=0;лЗ4=0;
лР="I";
лТабл.ВыбратьСтроки();
Пока лТабл.ПолучитьСтроку()=1 Цикл
лЦена=лТабл.ПродСумма/лТабл.Количество;
Если ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ОсновнаяСтавкаНДС Тогда
лА1=лТабл.ПродСумма;
ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЛьготнаяСтавкаНДС Тогда
лА2=лТабл.ПродСумма;
ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЭкспортнаяСтавкаНДС Тогда
лА3=лТабл.ПродСумма;
ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.БезНДС Тогда
лА4=лТабл.ПродСумма;
КонецЕсли;
лБ=лБ+лА1+лА2+лА3+лА4;
лТаб.ВывестиСекцию("Строка");
лР=" ";
КонецЦикла;
лВ6=Итог("ПродСумма");
Если ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ОсновнаяСтавкаНДС Тогда
лБ1=лВ6;
лГ1 = НДСпоДокументу;
лН1=Реквизит4;
лЗ1=Реквизит5;
ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЛьготнаяСтавкаНДС Тогда
лБ2=лВ6;
лГ2=НДСпоДокументу;
лН2=Реквизит4;
лЗ2=Реквизит5;
ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.ЭкспортнаяСтавкаНДС Тогда
лБ3=лВ6;
лГ3=НДСпоДокументу;
лН3=Реквизит4;
лЗ3=Реквизит5;
ИначеЕсли ВидНДС.ЗначениеНДС=Перечисление.ЗначенияНДС.БезНДС Тогда
лБ4=лВ6;
лН4=Реквизит4;
лЗ4=Реквизит5;
КонецЕсли;
лТаб.ВывестиСекцию("Итог"); //итог по разделу 1
лВ1=Реквизит1;
лВ5=лВ1;
лТаб.ВывестиСекцию("Строка3"); //тара
лН5=Формат((лН1+лН2+лН3+лН4),"N10.2");
лЗ5=Формат((лЗ1+лЗ2+лЗ3+лЗ4),"N10.2");
лВ6=лВ6+лВ5+лН5-лЗ5;
//строка итогов НДС
лГ5=лГ1+лГ2+лГ3+лГ4;
лТаб.ВывестиСекцию("Строка6");
//строка общих итогов
лТаб.ВывестиСекцию("Строка7");
Если ННРПоДокументу<>0 Тогда // 20.06.01 ВП
лТаб.ВывестиСекцию("ТекстНалогаНаРекламу");
КонецЕсли;
лТаб.ВывестиСекцию("Финиш");
лТаб.Опции(0,1,0,0);
лТаб.ПараметрыСтраницы(1,,,5,5,5,5,,,1,,);
лТаб.ТолькоПросмотр(1);
лТаб.Показать("Податкова накладна","");
КонецПроцедуры
//-----------------------------------
Процедура ВводНового(ПризнакКопирования,ОбъектКопирования)
Если РазрешитьВводНового()=0 Тогда // 15.06.01 ВП
Возврат;
КонецЕсли;
фФлагНового=1;
Если ПризнакКопирования=1 Тогда
Если ПроверкаОткрытияДокумента(0,СокрЛП(ОбъектКопирования.АвторДокумента))=0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
ДатаДок=РабочаяДата();
АвторДокумента=гПользователь.ПолноеИмя; // 07/09/2001 ДС
АвторИзменения="";
Иначе
ЗаполнитьШапку(Контекст,1,Перечисление.ВидыДокументов.НалоговаяНакладнаяРасходна
я,"");
ДокВалюта=Константа.ОснВалютаПродаж;
КонецЕсли;
УстФирмы(Контекст,1);
УстКурса(Контекст,1); //АП 19.04.2001
КонецПроцедуры
//----------------------//04/08/2000 OG
Процедура ПриРедактированииНовойСтроки()
ВыбВидСправочника(Контекст,"Товары,Имущество");
ДопВыбТовараРасход(); // 19.09.00 ВП - иначе эта функция вообще не отработает
КонецПроцедуры
//-----------------------------------
Процедура ПриНачалеРедактированияСтроки();
// 19.09.00 ВП - из-за побочных эффектов //ВыбВидСправочника(Контекст,"Товары,Имущество");//04/08/2000 OG
ВыгрузитьТабличнуюЧасть(гТабл); //запоминание реквизитов строки (до редактирования)
КонецПроцедуры
//-----------------------------------
Процедура ПриОкончанииРедактированияСтроки()
УстановкаСуммы();
КонецПроцедуры
//-----------------------------------
Процедура ПриВводеСтроки()
ВыгрузитьТабличнуюЧасть(гТабл); //запоминание реквизитов строки (до редактирования)
КонецПроцедуры
//-----------------------------------
Процедура ВводНаОсновании(ДокОснование)
Перем лДатаНДС;
Если РазрешитьВводНового()=0 Тогда // 15.06.01 ВП
Возврат;
КонецЕсли;
ФФлагНового=1;
Форма.Закладки.Сортировать(0);
ПриВыбореЗакладки(,1);
ДатаДок=ДокОснование.ДатаДок;
ДтФирма=ДокОснование.ДтФирма;
ДтФирма.ИспользоватьДату(ДатаДок);
УстФирмы(Контекст,1);
ДтКлиент=ДокОснование.ДтКлиент;
ДокДоговор=ДокОснование.ДокДоговор;
ДокВалюта=ДокОснование.ДокВалюта;
ДокВалюта.ИспользоватьДату(ДатаДок);
УстКурса(Контекст,1);
ЗаполнитьШапку(Контекст,1,Перечисление.ВидыДокументов.НалоговаяНакладнаяРасходна
я,"");
УстМетки(Контекст);
ДокументОснование=ДокОснование;
лДатаНДС=ДокОснование.ДатаДок;
Если (ДокОснование.Вид()="СчетПокупателю") Тогда
фДок=СоздатьОбъект("Документ");
фДок.ВыбратьПодчиненныеДокументы(,,ДокОснование);
Пока фДок.ПолучитьДокумент()=1 Цикл
Если ((фДок.Вид()="ПриходДенегНаСчет") ИЛИ
(фДок.Вид()="РасходнаяНакладная") ИЛИ
(фДок.Вид()="СводнаяРасходнаяНакладная")) Тогда
лДатаНДС=фДок.ДатаДок;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ((ДокОснование.Вид()="СчетПокупателю") ИЛИ
(ДокОснование.Вид()="РасходнаяНакладная") ИЛИ
(ДокОснование.Вид()="СводнаяРасходнаяНакладная"))
Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат;
КонецЕсли;
Содержание2=ДокОснование.Содержание1;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
Если (ДокОснование.Вид()="СчетПокупателю") Тогда
ВидННР=ДокОснование.ВидННР;
ННРПоДокументу=ДокОснование.ННРПоДокументу;
Иначе
ННРПоДокументу=0;
КонецЕсли;
Реквизит1=ДокОснование.СуммаТранспорта;
ФормаРасчетов=ДокОснование.ФормаРасчетов;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли;
НоваяСтрока();
Товар=ДокОснование.Товар;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
ДтНаправление=ДокОснование.ДтНаправление;
Единица=ДокОснование.Единица.Единица;
Коэффициент=ДокОснование.Коэффициент;
// 24/07/2001 ДС Если (Константа.УчетСкидки = Перечисление.Булево.Да) Тогда
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=ДокОснование.ПродСумма*100/(100+ВидНДС.ТарифНДС);
Иначе
ПродСумма=ДокОснование.ПродСумма;
КонецЕсли;
ПродЦена=ПродСумма/Количество;
// 24/07/2001 ДС КонецЕсли;
ДатаНДС=лДатаНДС;
КонецЦикла;
ИначеЕсли ((ДокОснование.Вид()="РасходнаяНакладнаяЭкспорт") ИЛИ
(ДокОснование.Вид()="АктВыполненныхРабот") ИЛИ
(ДокОснование.Вид()="СводныйСчетПокупателю") ИЛИ
(ДокОснование.Вид()="СчетРасписка")) Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат;
КонецЕсли;
Если (ДокОснование.Вид()="СчетРасписка") Тогда
Содержание2=ДокОснование.Содержание1;
КонецЕсли;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
Если (ДокОснование.Вид()="АктВыполненныхРабот") Тогда
ВидННР=ДокОснование.ВидННР;
ННРПоДокументу=ДокОснование.ННРПоДокументу;
КонецЕсли;
Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("СуммаТранспорта").Выбран()=1 Тогда
Реквизит1=ДокОснование.СуммаТранспорта;
КонецЕсли;
Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("ФормаРасчетов").Выбран()=1 Тогда
ФормаРасчетов=ДокОснование.ФормаРасчетов;
КонецЕсли;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли;
НоваяСтрока();
Товар=ДокОснование.Товар;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
ДтНаправление=ДокОснование.ДтНаправление;
Единица=ДокОснование.Единица.Единица;
Коэффициент=ДокОснование.Коэффициент;
Если (ДокОснование.Вид() = "СводныйСчетПокупателю") И
(Константа.УчетСкидки = Перечисление.Булево.Да) Тогда
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=(ДокОснование.ПродЦена1*ДокОснование.Количество)*100/(100+ДокОснование.ВидНДСвСтроке.ТарифНДС);
Иначе
ПродСумма=(ДокОснование.ПродЦена1*ДокОснование.Количество);
КонецЕсли;
ПродЦена=ПродСумма/Количество;
ИначеЕсли (ДокОснование.Вид() = "РасходнаяНакладнаяЭкспорт") Тогда
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=(ДокОснование.ПродСумма-НДСвСтроке)*ДокОснование.КурсДокументаБаз;
ПродЦена=ПродСумма/Количество*ДокОснование.КурсДокументаБаз;
Иначе
ПродЦена=ДокОснование.ПродЦена*ДокОснование.КурсДокументаБаз;
ПродСумма=ДокОснование.ПродСумма*ДокОснование.КурсДокументаБаз;
КонецЕсли;
Иначе
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=(ДокОснование.ПродСумма-НДСвСтроке);
ПродЦена=ПродСумма/Количество;
Иначе
ПродЦена=ДокОснование.ПродЦена;
ПродСумма=ДокОснование.ПродСумма;
КонецЕсли;
КонецЕсли;
ДатаНДС=лДатаНДС;
КонецЦикла;
ИначеЕсли ДокОснование.Вид()="АктСписанияИмущества" Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат;
КонецЕсли;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли;
НоваяСтрока();
Товар=ДокОснование.Имущество;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
Дтнаправление=Товар.Направление;
Единица=Товар.БазоваяЕдиница;
Коэффициент=1;
ПродЦена=ДокОснование.ПродЦена1; //28/10/99 OG
ПродСумма=ДокОснование.ПродСумма1;
ДатаНДС=лДатаНДС;
КонецЦикла;
ИначеЕсли ДокОснование.Вид() = "РасходИзРозницы" Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат;
КонецЕсли;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли;
НоваяСтрока();
Товар=ДокОснование.Товар;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
ДтНаправление=ДокОснование.ДтНаправление;
Единица=ДокОснование.Единица.Единица;
Коэффициент=ДокОснование.Коэффициент;
ПродСумма=ДокОснование.СебСуммаАльт - ДокОснование.НДСвСтроке;
ПродЦена=ПродСумма/Количество;
ДатаНДС=лДатаНДС;
КонецЦикла;
ИначеЕсли ДокОснование.Вид()="ПриходДенегНаСчет" Тогда // 24/07/2001 ДС
ФормаРасчетов = ДокОснование.ФормаРасчетов;
Содержание2 = ДокОснование.Содержание1;
НоваяСтрока();
ДатаНДС=лДатаНДС;
Товар = Константа.ТоварПоУмолчаниюДляНН;
КодТовара = Товар.Код;
Количество = 1;
Единица = Перечисление.ЕдиницыИзмерения.Штука;
Коэффициент = 1;
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСнаСумму Тогда
ПродЦена = ДокОснование.СуммаПоДокументу-ДокОснование.НДСпоДокументу-ДокОснование.ННРПоДокументу;
Иначе
ПродЦена = ДокОснование.СуммаПоДокументу-ДокОснование.ННРПоДокументу;
КонецЕсли;
ПродСумма =ПродЦена;
ВидНДС=ДокОснование.ВидНДС;
НДСПоДокументу=ДокОснование.НДСпоДокументу;
ВидННР=ДокОснование.ВидННР;
ННРПоДокументу=ДокОснование.ННРПоДокументу;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку() = 1 Цикл
ДтНаправление = ДокОснование.ДтНаправление;
Прервать;
КонецЦикла;
КонецЕсли;
Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("СкидкаПоСтроке").Выбран()=1 Тогда
лСуммаСкидки = ДокОснование.СкидкаПоСтроке;
Если лСуммаСкидки > 0 Тогда
Реквизит5 = лСуммаСкидки;
Иначе
Реквизит4 = -лСуммаСкидки; // 22.05.01 ВП - знак меняется
КонецЕсли;
КонецЕсли;
УстановкаСуммы();
КонецПроцедуры
//-----------------------------------
Процедура ПриОткрытии()
лФлагПриоритет=ПроверкаОткрытияДокумента(фФлагНового,СокрЛП(АвторДокумента));
Если лФлагПриоритет=0 Тогда //HP 17/12/99 нельзя открывать (нет доступа)
СтатусВозврата(0);
Возврат;
ИначеЕсли лФлагПриоритет=1 Тогда //HP 17/12/99 можно просматривать (ограничение доступа)
Форма.ТолькоПросмотр(1);
Форма.кнОК.Доступность(0);
КонецЕсли;
//окрывает документ д/просмотра или редактирования
//устанавливает закладку шапки(если документ новый) или таблицу(если старый)
Если ПустоеЗначение(гОткрытыйДокумент)=0 Тогда
//уже есть открытые документы, существующий документ открывается для просмотра
Предупреждение("Документ відкрито тільки для перегляду!");
Форма.ТолькоПросмотр(1);
Форма.кнОК.Доступность(0);
Иначе
//документ открывается для ввода/редактирования, все глоб переменные уст только для него!
гОткрытыйДокумент=ВзятьКонтекст(Контекст); // 15.06.01 ВП
КонецЕсли;
Если фФлагНового=0 Тогда
Форма.Закладки.ТекущаяСтрока(2);
ПриВыбореЗакладки(,2);
Иначе
Форма.Закладки.ТекущаяСтрока(1);
ПриВыбореЗакладки(,1);
КонецЕсли;
ПриЗаписиПерепроводить(1);
//при открытии сразу загенерим список
СотрудникиПодразделения(ДтПодразделение,фСписокМОЛ);
Если ДтМОЛ.Выбран()=1 Тогда
//если ДтМОЛ уже есть, то установим курсор списка на него
фСписокМОЛ.ТекущаяСтрока(фСписокМОЛ.НайтиЗначение(ДтМОЛ));
Иначе
//если ДтМОЛ нет, то установим курсор списка на первый и сразу установим ДтМОЛ
Если фСписокМОЛ.РазмерСписка()>0 Тогда
фСписокМОЛ.ТекущаяСтрока(1);
ДтМОЛ=фСписокМОЛ.ПолучитьЗначение(фСписокМОЛ.ТекущаяСтрока());
КонецЕсли;
КонецЕсли;
Если ННРПоДокументу=0 Тогда
лЕстьРеклама=Перечисление.Булево.Нет;
Иначе
лЕстьРеклама=Перечисление.Булево.Да;
КонецЕсли;
КонецПроцедуры
//-----------------------------------АП
Процедура Пошел()
лДатаТа=ПолучитьДатуТа();
Если ДатаКон>=лДатаТа Тогда
ДатаКон=лДатаТа;
КонецЕсли;
Если ПустоеЗначение(ВидНДС)=1 Тогда
Предупреждение("Виберіть ставку ПДВ по якій необхідно виписувати документ!");
Возврат;
КонецЕсли;
лЗапрос=СоздатьОбъект("Запрос");
лТекстЗапроса="Период с ДатаНач по ДатаКон;
|Фирма=Регистр.УпрТовар.Фирма;
|Метка=Регистр.УпрТовар.Метка;
|Товар=Регистр.УпрТовар.Товар;
|Клиент=Регистр.УпрТовар.Клиент;
|Док=Регистр.УпрТовар.ТекущийДокумент;
|Подразделение=Регистр.УпрТовар.Подразделение;
|Норм=Регистр.УпрТовар.НормСтоимостьБаз;
|Прод=Регистр.УпрТовар.ПродСтоимостьБаз;
|Количество=Регистр.УпрТовар.Количество;
|Группировка Док;
|Группировка Товар Без Групп;
|Функция Ф2=Расход(Прод);
|Функция Ф20=Расход(Количество) Когда (Количество<>0);
|Условие (Фирма=ДтФирма);
|Условие (Клиент=ДтКлиент);";
Если лЗапрос.Выполнить(лТекстЗапроса)=0 Тогда
Возврат;
КонецЕсли;
Пока лЗапрос.Группировка("Док")=1 Цикл
Пока лЗапрос.Группировка("Товар")=1 Цикл
Если ПустоеЗначение(лЗапрос.Товар)=1 Тогда
Продолжить;
КонецЕсли;
Если Не (ВидНДС=лЗапрос.Товар.НДС) Тогда
Продолжить;
КонецЕсли;
НоваяСтрока();
Товар=лЗапрос.Товар;
КодТовара=Товар.Код;
Количество=лЗапрос.Количество;
ДтНаправление=Товар.Направление;
Единица=Товар.БазоваяЕдиница;
Коэффициент=1;
ПродЦена=Окр(лЗапрос.Ф2*100/(100+ВидНДС.ТарифНДС)/лЗапрос.Ф20, Константа.ОкруглятьДо);
ПродСумма=Окр(лЗапрос.Ф2*100/(100+ВидНДС.ТарифНДС), Константа.ОкруглятьДо);
ДатаНДС=лЗапрос.Док.ДатаДок;
КонецЦикла;
КонецЦикла;
УстановкаСуммы();
КонецПроцедуры
//-----------------------------------
Процедура ПриЗаписи()
ПроверкаРабочегоПериода(Контекст);
УстановкаСуммы(0);
Если фФлагНового=0 Тогда
АвторИзменения=гПользователь.ПолноеИмя;
КонецЕсли;
КонецПроцедуры
//-----------------------------------
Процедура ПриЗакрытии()
Если гОткрытыйДокумент=ВзятьКонтекст(Контекст) Тогда // 15.06.01 ВП
гОткрытыйДокумент=0;
КонецЕсли;
КонецПроцедуры
//-----------------------------------
Форма.Товар.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.ПродЦена.ВыполнятьФормулуТолькоПриИзменении(1);
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение(1,"Шапка");
Форма.Закладки.ДобавитьЗначение(2,"Таблична частина");
Форма.Закладки.ДобавитьЗначение(3,"За період");
ДтФирма.ИспользоватьДату(ДатаДок);
фФлагНового=0;