Перем мТипСтр, мПоступленияОтМагазинов,мПоступленияОтПокупателей; Перем Рег, Рег1; // //**************************************************** Функция Инфо() Если Контрагент.Вид()="Контрагенты" Тогда Если ПустоеЗначение(Контрагент)=0 Тогда ЗадолжТов = Рег.СводныйОстаток (глФирРег(Фирма),Контрагент,,,,,"Долг"); ЗадолжВекс= Рег1.СводныйОстаток (ПустаяФирма ,Контрагент,,"Долг"); СтрИнфо = "Задолженность по Упр.Учету без тары и посуды на ТА("+ПолучитьДатуТА()+")"+РазделительСтрок+ "по накладным:"+Формат(ЗадолжТов,"Ч15.2,'"); Иначе СтрИнфо = ""; КонецЕсли; ИначеЕсли Контрагент.Вид()="АдресаДоставки" Тогда СтрИнфо = ?(ПустоеЗначение(Контрагент)=0, СокрЛП(Контрагент.Владелец), ""); Иначе СтрИнфо = ""; КонецЕсли; Возврат СтрИнфо; КонецФункции //Инфо //**************************************************** Процедура ВводНового(ПризнКопирования) Если ПризнКопирования=0 Тогда Фирма = Константа.ОсновнаяФирма; КонецЕсли; УдалитьСтроки(); Автор = глПользователь; КонецПроцедуры // ВводНового //**************************************************** Процедура ПриРедактированииНовойСтроки() Фирма_ = Фирма; ДокументОснование = 0; Ошибка = ""; ДокОсн = 0; КонецПроцедуры // ПриРедактированииНовойСтроки //**************************************************** Процедура ОткрытьДокумент() Если ДокументОснование.Выбран()=0 Тогда Возврат;КонецЕсли; ОткрытьФорму(ДокументОснование.ТекущийДокумент()); КонецПроцедуры // ПриРедактированииНовойСтроки() //**************************************************** Процедура ПриНачалеРедактированияСтроки() //Контрагент.ВидыДляВыбора("Контрагенты, Магазины"); Если Форма.ТекущаяКолонка()="ДокументОснование" Тогда Если ДокументОснование.Выбран()=1 Тогда ОткрытьФорму(ДокументОснование); КонецЕсли; ИначеЕсли Форма.ТекущаяКолонка()="кнО_ДокументОснование" Тогда//РКВ+ 130407 Если ДокументОснование.Выбран()=1 Тогда ОткрытьФорму(ДокументОснование); КонецЕсли; ИначеЕсли Форма.ТекущаяКолонка()="кнХ_ДокОсн" Тогда//РКВ+ 130407 ДокОсн = 0; КонецЕсли; КонецПроцедуры // ПриРедактированииСтроки() //**************************************************** Процедура ОбработкаПодборы(Выб) Контрагент = Выб; КонецПроцедуры // ОбработкаПодборы() //**************************************************** Функция ДоступностьРеквизитов() Если (ТипСтр=мТипСтр.ПКО_Бух) ИЛИ (ТипСтр=мТипСтр.ПКО_ТорК)ИЛИ (ТипСтр=мТипСтр.ПКО_ТорМ)ИЛИ (ТипСтр=мТипСтр.ПКО_ТорГ)Тогда Форма.Приход.Доступность(1); Форма.Расход.Доступность(0); Иначе Форма.Приход.Доступность(0); Форма.Расход.Доступность(1); КонецЕсли; КонецФункции //ДоступностьРеквизитов() //**************************************************** Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр) Перем КонтФ; Если ИдентЭлемДиалога="Контрагент" Тогда ФлагСтандОбр = 0; Если (ТипСтр=мТипСтр.ПКО_ТорМ) ИЛИ(ТипСтр=мТипСтр.РКО_ТорМ) Тогда _спр="Магазины"; ИначеЕсли (ТипСтр=мТипСтр.ПКО_Бух) ИЛИ(ТипСтр=мТипСтр.РКО_Бух) Тогда _спр=?(КоррСчет=СчетПоКоду("50.02"), "АдресаДоставки", "Сотрудники"); ИначеЕсли (ТипСтр=мТипСтр.ПКО_ТорГ) Тогда _спр="АдресаДоставки"; СтатьяЗатрат = мПоступленияОтПокупателей; Иначе _спр="Контрагенты"; КонецЕсли;// НазначитьВид(Контрагент,_спр);//"Справочник."+ Если ТипСтр=мТипСтр.ПКО_ТорК Тогда СтатьяЗатрат = мПоступленияОтПокупателей; КонецЕсли; Если КоррСчет=СчетПоКоду("50.02") Тогда СтатьяЗатрат = мПоступленияОтМагазинов; Если ПустоеЗначение(Фирма.Контрагент)=0 Тогда КонтФ = Фирма.Контрагент; КонецЕсли; КонецЕсли; ОткрытьПодбор("Справочник."+_спр,,КонтФ,0,Контрагент); Если ТипСтр=мТипСтр.ПКО_ТорГ Тогда спрХ=СоздатьОбъект("Справочник.Контрагенты"); Если спрХ.НайтиПоКоду("7104510591",0)=1 Тогда КонтФ.ИспользоватьВладельца(спрХ.ТекущийЭлемент()); КонецЕсли; КонецЕсли; ИначеЕсли ИдентЭлемДиалога="ДокОсн" Тогда //РКВ+ 130407 _ВО = КаталогИБ()+"ExtForms\MD_ПриходныйОрдерТБ_ПриНачалеВыбораЗначения().ert"; Если ФС.СуществуетФайл(_ВО)=1 Тогда _Па=СоздатьОбъект("СписокЗначений");_Па.ДобавитьЗначение(Контекст, "Контекст"); ОткрытьФормуМодально("Отчет", _Па, _ВО); ФлагСтандОбр = Число(_Па.Получить("ФлагСтандОбр")); КонецЕсли; КонецЕсли;//ИдентЭлемДиалога="? КонецПроцедуры // ВыборКлиента() //**************************************************** Процедура ПересчетМнЧ(псТекКлн="") Перем _КонтФ; Если псТекКлн="Фирма_" Тогда //Если Фирма_=Константа.ОсновнаяФирма Тогда // ТипСтр = Перечисление.ТипСтрКасЖур.; // ТипКли = "Маг"; //Иначе // ТипДок = "Бухг"; // ТипКли = "Сот"; //КонецЕсли; //ПересчетМнЧ("ТипДок"); //------------------------------------------------- ИначеЕсли псТекКлн="ТипСтр" Тогда Если (ТипСтр=мТипСтр.ПКО_Бух) ИЛИ (ТипСтр=мТипСтр.РКО_Бух) Тогда Форма.КоррСчет .Доступность(1); Форма.ВидОплаты .Доступность(0); Если КоррСчет.Выбран()=0 Тогда КоррСчет = СчетПоКоду("71.1"); КоррСчет = СчетПоКоду("50.02"); КонецЕсли; ВидОплаты = 0; Иначе КоррСчет = 0; Форма.КоррСчет .Доступность(0); Форма.ВидОплаты .Доступность(1); ВидОплаты = Перечисление.ВидыОплаты.Оплата; КонецЕсли;// Если (ТипСтр=мТипСтр.ПКО_Бух) ИЛИ (ТипСтр=мТипСтр.ПКО_ТорК)ИЛИ (ТипСтр=мТипСтр.ПКО_ТорМ)ИЛИ (ТипСтр=мТипСтр.ПКО_ТорГ)Тогда Расход = 0; Иначе Приход = 0; КонецЕсли; //------------------------------------------------- ИначеЕсли псТекКлн="Контрагент" Тогда Если Найти("Магазины/АдресаДоставки", Контрагент.Вид())>0 Тогда ПриходМ = Приход; РасходМ = Расход; Иначе ПриходМ = 0; РасходМ = 0; КонецЕсли; //РКВ+ 140712 Если (ТипСтр=мТипСтр.ПКО_Бух) Тогда Если КоррСчет=СчетПоКоду("50.02") Тогда Если Контрагент.Вид()="АдресаДоставки" Тогда Если Контрагент.ВидДДС.Выбран()=1 Тогда СтатьяЗатрат = Контрагент.ВидДДС; Иначе СтатьяЗатрат = Контрагент.Владелец.ВидДДС; КонецЕсли; ИначеЕсли Контрагент.Вид()="Контрагенты" Тогда СтатьяЗатрат = Контрагент.ВидДДС; КонецЕсли; КонецЕсли;КонецЕсли; КонецЕсли;//псТекКлн=" КонецПроцедуры // ПересчетМнЧ //**************************************************** Процедура ПриходРасход(пчРасх=0) Если Расход>0 Тогда Расход = -Расход; КонецЕсли; Если пчРасх=0 Тогда Если Приход<>0 Тогда Расход = 0; КонецЕсли; Иначе Если Расход<>0 Тогда Приход = 0; КонецЕсли; КонецЕсли; ПересчетМнЧ("Контрагент"); КонецПроцедуры // ПриходРасход() //**************************************************** Функция ДоступностьРек() // Форма.Расход.Доступность(?(Расход=0,0,1)); // Форма.Приход.Доступность(?(Приход=0,0,1)); КонецФункции //ДоступностьРек() //**************************************************** Процедура Печать() _ВО = КаталогИБ()+"ExtForms\PrnForms\"+Вид()+"_(Печ).ert"; Если ФС.СуществуетФайл(_ВО)=1 Тогда _па=СоздатьОбъект("СписокЗначений");_па.ДобавитьЗначение(Контекст,"Контекст"); ОткрытьФорму("Отчет", _па, _ВО); Возврат; КонецЕсли; гОживить0(,КоличествоСтрок()); Т = СоздатьОбъект("Таблица"); Т.ИсходнаяТаблица("Печать"); Т.ВывестиСекцию("Шапка"); ВыбратьСтроки(); _Приход = 0; _Расход = 0; Ном = 0; Пока ПолучитьСтроку()=1 Цикл гОживить(" "); Если ДокументОснование.Выбран()=0 Тогда Т.ВывестиСекцию("Пусто"); Иначе Ном = Ном+1; ПКО = ДокументОснование.ТекущийДокумент(); Т.ВывестиСекцию("Строка"); _Приход = _Приход+Приход; _Расход = _Расход+Расход; КонецЕсли; КонецЦикла; Т.ВывестиСекцию("Подвал"); Т.ТолькоПросмотр(1); Т.Показать(); КонецПроцедуры // ВыборКлиента() //**************************************************** Процедура Сформировать() Перем _ВО; _ВО = КаталогИБ()+"ExtForms\КассовыйЖурнал[д]Сформировать.ert"; Если ФС.СуществуетФайл(_ВО)=1 Тогда ОткрытьФормуМодально("Отчет", Контекст, _ВО); Возврат; КонецЕсли; Если КоличествоСтрок()<1 Тогда Возврат;КонецЕсли; Если Итог("Приход")-Итог("Расход")=0 Тогда Возврат;КонецЕсли; _меню = СоздатьОбъект("СписокЗначений"); _меню.ДобавитьЗначение(1,"По текущей строке"); _меню.ДобавитьЗначение(2,"По всем строкам"); _видОбр=0;Если _меню.ВыбратьЗначение(_видОбр,,,180,1)<>1 Тогда Возврат;КонецЕсли; _ТекСтр = НомерСтроки; гОживить0(,КоличествоСтрок()); _КонОсновнаяСтавкаНП= Константа.ОсновнаяСтавкаНП; _КонОснСтНДС = Константа.ОсновнаяСтавкаНДС; _СпрСтХ = СоздатьОбъект("Справочник.СтавкиНП"); _СпрСтХ.НайтиПоРеквизиту("Ставка",0,1); _БезНП = _СпрСтХ.ТекущийЭлемент(); _СпрМаг = СоздатьОбъект("Справочник.Магазины"); _СпиДок = СоздатьОбъект("СписокЗначений"); Т = СоздатьОбъект("Таблица"); Т.ВывестиСекцию("Шапка"); иСумПри = 0; иСумРас = 0; ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл гОживить(); Если Приход-Расход=0 Тогда Продолжить;КонецЕсли; Если _видОбр=1 Тогда Если НомерСтроки<>_ТекСтр Тогда Продолжить; КонецЕсли; КонецЕсли; Если (ТипСтр=мТипСтр.ПКО_Бух) Тогда _ДокВид="ПриходныйОрдерБ"; ИначеЕсли (ТипСтр=мТипСтр.РКО_Бух) Тогда _ДокВид="РасходныйОрдерБ"; ИначеЕсли (ТипСтр=мТипСтр.ПКО_ТорК) ИЛИ(ТипСтр=мТипСтр.ПКО_ТорМ) ИЛИ(ТипСтр=мТипСтр.ПКО_ТорГ)Тогда _ДокВид="ПриходныйОрдерТБ"; ИначеЕсли (ТипСтр=мТипСтр.РКО_ТорК) ИЛИ(ТипСтр=мТипСтр.РКО_ТорМ)Тогда _ДокВид="РасходныйОрдерТБ"; Иначе Сообщить("В строке № "+НомерСтроки+" не указан вид документа","!"); Продолжить; КонецЕсли;// Если (ДатаДок>'01.07.2005') И (СтатьяЗатрат.Выбран()=0) Тогда Сообщить("В строке № "+НомерСтроки+" не указан вид движения ден.средств","!"); Продолжить; КонецЕсли; _д = СоздатьОбъект("Документ."+_ДокВид); Если ДокументОснование.Выбран()=1 Тогда _Найден = _д.НайтиДокумент(ДокументОснование); Иначе _Найден = 0; КонецЕсли; Если _Найден=0 Тогда _д.Новый(); _д.ДатаДок = ДатаДок; ИначеЕсли фчВсеДокументы=0 Тогда Продолжить; ИначеЕсли _д.Проведен()=1 Тогда _д.СделатьНеПроведенным(); КонецЕсли; _д.Фирма = Фирма; _д.Автор = Автор; _д.Основание = ""; _д.ТипУчета = Общ; _д.ФинУчет = 1; _д.СтатьяЗатрат = СтатьяЗатрат; Если глЕстьРеквизитШапки("ДокументОснование",_ДокВид)=Да Тогда _д.ДокументОснование = ДокОсн; КонецЕсли; Если _ДокВид="ПриходныйОрдерБ" Тогда _д.ПринятоОт = СокрЛП(?(Контрагент.Вид()="АдресаДоставки", Контрагент.Адрес, Контрагент.Наименование)); _д.КоррСчет = КоррСчет; Для _А = 1 По 3 Цикл _д.НазначитьТип("Субконто"+_А, _д.КоррСчет.ВидСубконто(_А)); КонецЦикла; _д.Субконто1 = Контрагент; _д.ФормироватьПроводки = 1; _д.Сумма = Приход; _д.Количество = 0; _д.СтавкаНДС = ?((_д.Фирма.ЕНВД=0)и(КоррСчет<>СчетПоКоду("50.02")), _КонОснСтНДС, глБезНДС); _д.УказатьНДС = 1; _д.Касса = ?(_СпрМаг.НайтиПоРеквизиту("АдресДоставки", _д.Субконто1, 1)=1, _СпрМаг.Касса, ""); иСумПри = иСумПри+Приход; ИначеЕсли _ДокВид="РасходныйОрдерБ" Тогда _д.Выдать = СокрЛП(Контрагент.Наименование); _д.КоррСчет = КоррСчет; Для _А = 1 По 3 Цикл _д.НазначитьТип("Субконто"+_А, _д.КоррСчет.ВидСубконто(_А)); КонецЦикла; _д.Субконто1 = Контрагент; _д.ФормироватьПроводки = 1; _д.Сумма =-Расход; _д.Количество = 0; иСумРас = иСумРас+Расход; ИначеЕсли _ДокВид="ПриходныйОрдерТБ" Тогда _д.Клиент = ?(Контрагент.Вид()="АдресаДоставки", Контрагент.Владелец, Контрагент); _д.АдресДоставки = ?(Контрагент.Вид()="АдресаДоставки", Контрагент, 0); _д.ПринятоОт = СокрЛП( _д.Клиент.Наименование); _д.Сумма = Приход; _д.Валюта = Рубли; _д.СтавкаНДС = ?(_д.Фирма.ЕНВД=0, _КонОснСтНДС, глБезНДС);//РКВ+1130801 ?(_д.Клиент.Вид()="Магазины",глБезНДС, ?(_д.Фирма.ЕНВД=0, _КонОснСтНДС, глБезНДС) ); _д.ВидОплаты = ВидОплаты; _д.СтавкаНП = _БезНП; _д.ФлагОплатыВекселя = 0; _д.ФлагЗакрытияАвансовВекселей= 0; _д.Агент = Агент; Если _д.Клиент.Вид()="Магазины" Тогда //РКВ+ 140209 _д.СтавкаНДС= глБезНДС; КонецЕсли; //РКВ+ 130407 Если ДокументОснование.Выбран()=1 Тогда Если глЕстьРеквизитШапки("Агент", ДокументОснование.Вид())=Да Тогда _д.Агент = ДокументОснование.Агент; КонецЕсли;КонецЕсли; Если ПустоеЗначение(Агент)=1 Тогда Если Контрагент.Вид()="Контрагенты" Тогда _д.Агент = Контрагент.Агент; КонецЕсли;КонецЕсли; иСумПри = иСумПри+Приход; ИначеЕсли _ДокВид="РасходныйОрдерТБ" Тогда _д.Клиент = Контрагент; _д.Выдать = СокрЛП(Контрагент.Наименование); _д.Сумма =-Расход; _д.Валюта = Рубли; _д.СтавкаНДС = ?(_д.Клиент.Вид()="Магазины",глБезНДС,?(_д.Фирма.ЕНВД=0, _КонОснСтНДС, глБезНДС)); _д.ВидОплаты = ВидОплаты; _д.СтавкаНП = _БезНП; иСумРас = иСумРас+Расход; КонецЕсли;//_ДокВид="? _д.УстановитьНовыйНомер(_д.Фирма.ПрефиксНомеровДокументов+"-"); НачатьТранзакцию(); _ОК = 1; Ошибка = ""; Попытка _д.Записать(); ПолучитьСтрокуПоНомеру(НомерСтроки); ДокументОснование = _д.ТекущийДокумент(); Записать(); Исключение _ОК = 0; Ошибка = ОписаниеОшибки(); Т.ВывестиСекцию("ОшибкаЗаписи"); КонецПопытки; Если _ОК=1 Тогда ЗафиксироватьТранзакцию(); _СпиДок.ДобавитьЗначение(_д.ТекущийДокумент()); Иначе ОтменитьТранзакцию(); КонецЕсли; Если ПустоеЗначение(Ошибка)=1 Тогда Попытка _д.Провести(); Исключение КонецПопытки; Если _д.Проведен()=0 Тогда Ошибка = ОписаниеОшибки(); Т.ВывестиСекцию("ОшибкаПроведения"); КонецЕсли; КонецЕсли; Если _д.Проведен()=1 Тогда Т.ВывестиСекцию("Проведен"); КонецЕсли; КонецЦикла; //Пока ПолучитьСтроку Т.ВывестиСекцию("П"); Т.ТолькоПросмотр(1); Т.Область("R2C4").Расшифровка(ЗначениеВСтрокуВнутр(_СпиДок)); Т.Показать(); КонецПроцедуры // ПриРедактированииНовойСтроки() //**************************************************** Процедура ПриЗаписи() // //РКВ+ 140712 // Если (ТипСтр=мТипСтр.ПКО_Бух) Тогда Если КоррСчет=СчетПоКоду("50.02") Тогда // Если Контрагент.ВидДДС.Выбран()=1 Тогда // СтатьяЗатрат = Контрагент.ВидДДС; // ИначеЕсли Контрагент.Вид()="АдресаДоставки" Тогда Если Контрагент.Владелец.ВидДДС.Выбран()=1 Тогда // СтатьяЗатрат = Контрагент.Владелец.ВидДДС; // КонецЕсли;КонецЕсли; // КонецЕсли;КонецЕсли; // //МнЧ = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(МнЧ); //Сч50_02 = СчетПоКоду("50.02"); //МнЧ.ВыбратьСтроки(); //Пока МнЧ.ПолучитьСтроку()=1 Цикл // Если (МнЧ.ТипСтр=мТипСтр.ПКО_Бух) Тогда Если МнЧ.КоррСчет=СчетПоКоду("50.02") Тогда // Если МнЧ.СтатьяЗатрат.Выбран()=1 Тогда // Если МнЧ.Контрагент.ВидДДС.Выбран()=0 Тогда Если МнЧ.Контрагент.Вид()="АдресаДоставки" Тогда // // // КонецЕсли;КонецЕсли; // СтатьяЗатрат = Контрагент.ВидДДС; // ИначеЕсли Контрагент.Вид()="АдресаДоставки" Тогда Если Контрагент.Владелец.ВидДДС.Выбран()=1 Тогда // СтатьяЗатрат = Контрагент.Владелец.ВидДДС; // КонецЕсли;КонецЕсли; // КонецЕсли;КонецЕсли; //КонецЦикла; КонецПроцедуры // ПриЗаписи //**************************************************** Процедура ОбработкаЯчейкиТаблицы(Значение,ФлагСтандОбраб,Таблица,Адрес) з = ЗначениеИзСтрокиВнутр(Значение); Если ТипЗначенияСтр(з)="СписокЗначений" Тогда ФлагСтандОбраб=0; _ВО = КаталогИБ()+"ExtForms\ПечатьДокументовХКО.ert"; Если ФС.СуществуетФайл(_ВО)=1 Тогда _па=СоздатьОбъект("СписокЗначений");_па.ДобавитьЗначение(з,"СписокДокументов"); ОткрытьФорму("Отчет", _па, _ВО); КонецЕсли; Возврат; КонецЕсли; ФлагСтандОбраб = 1; КонецПроцедуры // ОбработкаЯчейкиТаблицы //* мТипСтр = Перечисление.ТипСтрКасЖур; ВремРег = СоздатьОбъект("Регистры"); Рег = ВремРег.ВзаиморасчетыПокупателей; Рег1= ВремРег.ВзаиморасчетыПоВекселю; спрХ = СоздатьОбъект("Справочник.СтатьиЗатрат"); мПоступленияОтМагазинов = ?(спрХ.НайтиПоКоду(164,0)=1, спрХ.ТекущийЭлемент(), 0); мПоступленияОтПокупателей = ?(спрХ.НайтиПоКоду(165,0)=1, спрХ.ТекущийЭлемент(), 0);