перем ств,надо,сп,нстр; перем тс экспорт; перем табм[1000],ик[1000],номстр[1000],отв[1000],пы[1000]; перем _сп_, _с_; процедура создать_список();_сп_=создатьобъект("списокзначений");выбратьстроки();пока получитьстроку()=1 цикл _сп_.добавитьзначение(""+товар.наим,номерстроки);конеццикла;если алфавит=1 тогда _сп_.сортировать();конецесли;конецпроцедуры функция _выбратьстроки() _с_=0;в=выбратьстроки();возврат в;конецфункции функция _получитьстроку() _с_=_с_+1; если _с_>_сп_.размерсписка() тогда возврат 0;иначе _нс_="";з=_сп_.получитьзначение(_с_,_нс_);в=получитьстрокупономеру(число(_нс_));возврат в;конецесли;конецфункции функция итог_(с,п) п=итог(с); возврат п; конецфункции функция остаток_лицензии() р=Регистр.Лицензии.Остаток(Товар,Лицензия,"остаток"); возврат (р); конецфункции функция еслигтд() // если trimall(гтдд) = "" тогда гтдд=гтд; конецесли; конецфункции функция СчитаемСтроку() н=ндс.ставка/100; п=пошлина.ставка/100; //сообщить(строка(н)+" - "+строка(п)); сумма_с_вал=цена_вал*количество; если строка(видприхода)="импорт" тогда пош_вал=сумма_с_вал*п; иначе пош_вал=0; конецесли; если _Регион_<>"Самара" тогда ндс_вал=окр((сумма_с_вал+пош_вал)*н,2); сумма_вал=сумма_с_вал+ндс_вал+пош_вал; ссз_вал=цсз_вал*количество; ссз_руб=цсз_руб*количество; если (число(дата_курса)<>0)или(валютакурс<>0) тогда к=валютакурс; сумма_руб=сумма_вал*к; сумма_с_руб=сумма_с_вал*к; цена_руб=цена_вал*к; пош_руб=пош_вал*к; ндс_руб=окр(ндс_вал*к,2); конецесли; иначе ндс_вал=(сумма_с_вал+пош_вал)*н; сумма_вал=сумма_с_вал+ндс_вал+пош_вал; ссз_вал=цсз_вал*количество; ссз_руб=цсз_руб*количество; если (число(дата_курса)<>0)или(валютакурс<>0) тогда к=валютакурс; сумма_руб=сумма_вал*к; сумма_с_руб=сумма_с_вал*к; цена_руб=цена_вал*к; пош_руб=пош_вал*к; ндс_руб=ндс_вал*к; конецесли; конецесли; конецфункции процедура новаядата(д1,п,д2) д2=д1+п; конецпроцедуры процедура сертификат() если товар.выбран()=0 тогда возврат; конецесли; с=создатьобъект("справочник.сертификаты"); с.использоватьвладельца(товар); с.найтипокоду(кодсерии(серия)); если (с.выбран()=1)и(trimall(серт)="") тогда серт=с.наименование; дсерт=с.дсерт; лаб=с.лаб; нан=с.нан; дан=с.дан; конецесли; конецпроцедуры процедура сертификаты() выбратьстроки(); пока получитьстроку()=1 цикл сертификат(); конеццикла;конецпроцедуры функция ВвелиТовар() перем вв,пр; если надо="надо" тогда перейти ~надо; конецесли; если строка(поставщик)="" тогда щ="Нет поставщика"; перейти ~облом; конецесли; если строка(видприхода)="" тогда щ="Не задан вид прихода"; перейти ~облом; конецесли; если строка(валюта)="" тогда щ="Нет валюты прихода"; перейти ~облом; конецесли; вв=создатьобъект("справочник.валюты"); пр=создатьобъект("документ.приходтовара"); ~надо: если товар.выбран()>0 тогда поз=сп.найтизначение(число(товар.код)); если поз<>0 тогда сп.получитьзначение(поз,нстр); иначе нстр=""+номерстроки; конецесли; // сообщить(нстр); если пп=0 тогда если ""+номерстроки<>""+нстр тогда предупреждение("Такой товар уже есть в строке "+нстр); товар=0; возврат 0; иначе сп.добавитьзначение(число(товар.код),""+номерстроки); конецесли; конецесли; если изврат=нет тогда если ндс.выбран()=0 тогда ндс=товар.ндс; если строка(видприхода)="импорт" тогда пошлина=товар.пошлина; иначе пошлина=без_пошлины.текущийэлемент(); конецесли; иначеесли (товар.ндс=ндс)и ( ((строка(видприхода)="импорт")и(товар.пошлина=пошлина))или (строка(видприхода)<>"импорт") ) тогда вв=создатьобъект("справочник.валюты"); валюта.использоватьдату(датадок); если валютакурс=0 тогда валютакурс=валюта.курс; конецесли; кд=валютакурс; // вв=товар.взак; // вв.использоватьдату(датадок); // кт=вв.курс; // если валюта=товар.взак тогда // цена_вал=товар.цсип; // иначе // цена_вал=товар.цсип/кд*кт; // конецесли; иначе предупреждение("Товар не подходит для данного прихода"); товар=0; конецесли; иначе // изврат валютакурс=1; //никто не мешает и поменять //приходная цена - рублевая себестоимость прихода, по которому продан товар в заказе //для того чтобы не было обломов нельзя допускать дубли строк по крайне мере товар обязан //быть с различными сериями. приход=создатьобъект("документ.приходтовара"); если взаказ.выбратьстроки()=0 тогда щ="В заказе для возврата нет строк!"; перейти ~облом;конецесли; нашли=0; серии=создатьобъект("списокзначений"); пока взаказ.получитьстроку()=1 цикл // ищем товар в заказе если товар=взаказ.товар тогда // если triml(серия)<>"" тогда // если серия=взаказ.серия тогда // нашли с серией // нашли=1; серия=взаказ.серия; годн=взаказ.годн; // приход=взаказ.приход; // прервать; // конецесли; // иначе // нашли=1;серия=взаказ.серия; годн=взаказ.годн; // приход=взаказ.приход; // прервать; // конецесли нашли=1; серии.добавитьзначение(взаказ.номерстроки,trimall(""+взаказ.серия)+" / "+trimall(""+взаказ.приход)+" / "+взаказ.количество); конецесли; конеццикла; если нашли=0 тогда щ="Такого товара в заказе """+взаказ+""" не было"; перейти ~облом; конецесли; нсз=0; //номерстрокизаказа если серии.размерсписка()>1 тогда серии.выбратьзначение(нсз,"Выберите серию (серия / приход / количество в документе)"); конецесли; если нсз=0 тогда нсз=серии.получитьзначение(1); конецесли; взаказ.выбратьстроки(); пока взаказ.получитьстроку()=1 цикл если нсз=взаказ.номерстроки тогда // оно нашли=1; серия=взаказ.серия; годн=взаказ.годн; приход=взаказ.приход; склад_фактуры_прихода=взаказ.приход; прервать; конецесли; конеццикла; //товар найден!!! //приходная цена - рублевая себестоимость в приходе, по которому продан товар в заказе если ндс.выбран()=0 тогда ндс=товар.ндс; пошлина=константа.безпошлины; иначе если ндс<>товар.ндс тогда щ="Товар есть в заказе, но не подходит для данного прихода"; goto ~облом; конецесли; конецесли; //цену по которой списывем задолженность берем прямо из заказа цсз_вал=взаказ.цена; //цена берется только валютная, рублевая пересчитывается по дате заказ вв=взаказ.валюта; вв.использоватьдату(взаказ.дата_курса); сообщить("@"+вв.курс); цсз_руб=цсз_вал*вв.курс; //теперь попытаемя вынуть себестоимость в регистр лезть лениво //возьмем прямо из прихода пр=взаказ.приход; если пр.выбратьстроки()=0 тогда сообщить("засада с приходом"); иначе нашли=0; пока пр.получитьстроку()=1 цикл если товар=пр.товар тогда нашли=1; прервать; конецесли; конеццикла; //ну ты дал! //пошлина стала ноль - но в себестоимость включить надо цена_вал=пр.цена_руб+(пр.пош_руб/пр.количество); ндс_вал=пр.ндс_руб; //возврат это только рубли! // сообщить(строка(пр)); // если пр.дата_курса<>0 тогда // дата_курса=пр.дата_курса; //а иначе не получиться! // вв=пр.валюта; вв.использоватьдату(пр.дата_курса); цена_руб=цена_вал; ндс_руб=ндс_вал; // конецесли; конецесли; возврат 0; ~облом: предупреждение(щ); товар=0; серия=""; годн=0; конецесли; //изврат считаемстроку(); конецесли; конецфункции процедура принтер(т) т.напечатать(0); конецпроцедуры функция измена() если валюта=рубль тогда валютакурс=1; конецесли; если выбратьстроки()=1 тогда пока получитьстроку()=1 цикл //валюта.использоватьдату(датадок);ств.использоватьдату(датадок); //Цена_вал=Цена_вал/валюта.курс*ств.курс; СчитаемСтроку(); конеццикла; конецесли; конецфункции процедура возврат_() если выбратьстроки()<>0 тогда предупреждение("Табличная часть должна быть пустой"); иначе если (взаказ.проведен()=1)и(строка(взаказ.стадия)="проведен") тогда изврат=да; поставщик=взаказ.покупатель; // валюта=взаказ.валюта; валюта=рубль; дата_курса=взаказ.дата_курса; валюта.использоватьдату(дата_курса); видприхода=перечисление.видприхода.возврат; если валютакурс=0 тогда валютакурс=валюта.курс; конецесли; импорт=нет; иначе предупреждение("Эта фактура не проведена"); конецесли; конецесли; конецпроцедуры процедура измена_вид_прихода() в=строка(видприхода); если в="импорт" тогда импорт=да; изврат=нет; иначеесли в="покупка" тогда импорт=нет; изврат=нет; иначеесли в="возврат" тогда импорт=нет; изврат=да; конецесли; конецпроцедуры процедура возврат_данет() если изврат=нет тогда взаказ="" конецесли конецпроцедуры процедура ВводНаОсновании(з) пп=1;псеп=1; ЕСЛИ _регион_="Самара" тогда св=строка(з.вид_док); если (св="заказ_к_поставщику")или(св="номенклатура_поставщика") тогда поставщик=з.поставщик;основанние=""+з+" "+поставщик.основание; валюта=поставщик.ВалКредитаПост; видприхода=перечисление.видприхода.импорт; на_основании=""+з; з.выбратьстроки(); пока з.получитьстроку()=1 цикл если з.количество>0 тогда новаястрока(); товар=з.товар; количество=з.количество; ввелитовар(); ввелитовар(); считаемстроку(); конецесли; конеццикла; конецесли; если (св="СписаниеТовара")или(св="Фактура") тогда надо="надо"; основание=""+з; з.выбратьстроки(); пока з.получитьстроку()=1 цикл если з.количество>0 тогда новаястрока(); товар=з.товар; серия=з.серия; годн=з.годн; количество=з.количество; //выясняем цену ид=з.приход; ид.выбратьстроки(); пока ид.получитьстроку()=1 цикл если товар=ид.товар тогда цена_вал=ид.цена_вал; если trimall(ид.гтдд) <> "" тогда гтдд = ид.гтдд; иначе гтдд = ид.гтд; конецесли; прервать; конецесли; конеццикла; // ввелитовар(); ввелитовар(); считаемстроку(); конецесли; конеццикла; надо=0; конецесли; ИНАЧЕ св=строка(з.вид_док); если (св="заказ_к_поставщику")или(св="номенклатура_поставщика") тогда поставщик=з.поставщик;основанние=поставщик.основание; валюта=поставщик.ВалКредитаПост; видприхода=перечисление.видприхода.импорт; на_основании=""+з; з.выбратьстроки(); пока з.получитьстроку()=1 цикл состояние(""+з.номерстроки); если з.количество>0 тогда новаястрока(); товар=з.товар; количество=з.количество; если (св="заказ_к_поставщику")и(""+валюта="руб")и(""+з.вц="руб")и(товар.ндс.ставка=0) тогда цена_вал=з.цена; конецесли; ввелитовар(); ввелитовар(); считаемстроку(); конецесли; конеццикла; конецесли; если (св="СписаниеТовара")или(св="Фактура") тогда надо="надо"; валюта=з.валюта; з.выбратьстроки(); пока з.получитьстроку()=1 цикл если з.количество>0 тогда новаястрока(); товар=з.товар; серия=з.серия; годн=з.годн; количество=з.количество; ид=з.приход; ид.выбратьстроки(); пока ид.получитьстроку()=1 цикл если товар=ид.товар тогда если trimall(ид.гтдд) <> "" тогда гтдд = ид.гтдд; иначе гтдд = ид.гтд; конецесли; прервать; конецесли; конеццикла; если (св="Фактура")и(товар.ндс.ставка=0)и(валюта=з.валюта) тогда цена_вал=з.цена; конецесли; ввелитовар(); ввелитовар(); считаемстроку(); конецесли; конеццикла; надо=0; конецесли; КОНЕЦЕСЛИ; конецпроцедуры Процедура ПриходБПечать() пропись(""); Таб=СоздатьОбъект("Таблица"); //есть варианты если изврат=нет тогда таб.исходнаятаблица("приход_вал"); иначе таб.исходнаятаблица("изврат"); конецесли; Таб.ВывестиСекцию("Шапка"); _выбратьстроки(); Нм=0; Пока _получитьстроку() = 1 do Нм=Нм+1; Таб.ВывестиСекцию("Строка"); enddo; Таб.ВывестиСекцию("Подвал"); таб.ПараметрыСтраницы(2,г_м); // Таб.Опции(0,0,0,0,ПарСтрДок); Таб.Защита(Константа.ФлагЗащитыТаблиц); Таб.ТолькоПросмотр(1); //есть варианты если изврат=нет тогда если пбп1=1 тогда у_при(таб) конецесли; если пбп=1 тогда принтер(таб) иначе Таб.Показать("Приходная на рублевый склад от поставщика /для бухгалтерии/",""); конецесли; иначе если пбп1=1 тогда у_при(таб) конецесли; если пбп=1 тогда принтер(таб) иначе Таб.Показать("Возвратная на рублевый склад /для бухгалтерии/",""); конецесли; конецесли; КонецПроцедуры Процедура акт() пропись(""); Таб=СоздатьОбъект("Таблица"); //есть варианты таб.исходнаятаблица("акт"); Таб.ВывестиСекцию("Шапка"); _выбратьстроки(); Нм=0; Пока _получитьстроку() = 1 do Нм=Нм+1; Таб.ВывестиСекцию("Строка"); enddo; Таб.ВывестиСекцию("Подвал"); таб.ПараметрыСтраницы(2,г_м); // Таб.Опции(0,0,0,0,ПарСтрДок); Таб.Защита(0); Таб.ТолькоПросмотр(0); //есть варианты если пбп1=1 тогда у_при(таб) конецесли; если пбп=1 тогда принтер(таб) иначе Таб.Показать("Приемный акт",""); конецесли; КонецПроцедуры Процедура ПриходСПеч() пропись(""); Таб=СоздатьОбъект("Таблица"); //есть варианты таб.исходнаятаблица("клад2"); Таб.ВывестиСекцию("Шапка"); _выбратьстроки(); Нм=0; Пока _получитьстроку() = 1 do Нм=Нм+1; Таб.ВывестиСекцию("Стр"); enddo; Таб.ВывестиСекцию("Итого"); таб.ПараметрыСтраницы(2,г_м); // Таб.Опции(0,0,0,0,ПарСтрДок); Таб.Защита(0); Таб.ТолькоПросмотр(0); //есть варианты если пбп1=1 тогда у_при(таб) конецесли; если пбп=1 тогда принтер(таб) иначе Таб.Показать("Письмо",""); конецесли; КонецПроцедуры процедура корочки() Таб=СоздатьОбъект("Таблица"); таб.исходнаятаблица("карты"); _выбратьстроки(); н=0;к=0; Пока _получитьстроку() = 1 do если н=0 тогда Таб.ВывестиСекцию("л|в"); н=1; иначе Таб.ПрисоединитьСекцию("л|в"); н=0; к=к+1; конецесли; если к=2 тогда к=0; таб.новаястраница(); конецесли; enddo; таб.ПараметрыСтраницы(1,,,,,,,,,1); Таб.Защита(0); Таб.ТолькоПросмотр(0); если пбп1=1 тогда у_при(таб) конецесли; если пбп=1 тогда принтер(таб) иначе Таб.Показать("карты...",""); конецесли; конецпроцедуры процедура ПриходСПечать() //по образу и подобию печати заказов сотр=создатьобъект("справочник.сотрудники"); если сотр.выбратьэлементы()=0 тогда перейти ~опс; конецесли; нм=0; пока сотр.получитьэлемент()<>0 цикл нм=нм+1; табм[нм]=создатьобъект("таблица"); табм[нм].исходнаятаблица("клад"); отв[нм]=сотр.наименование; табм[нм].вывестисекцию("шапка"); номстр[нм]=0;ик[нм]=0; конеццикла; если _выбратьстроки()>0 тогда пока _получитьстроку()>0 цикл // к=кодд[число(товар.ндс.код)]; //получили номер счета, к которому относится эта строка тома(контекст);к=0; for i=1 to нм do if строка(отв[i])=строка(товарматответ) then к=i; break; endif; enddo; если к=0 тогда сообщить("Товар: "+товар+" без ответственного!"); continue; endif; номстр[к]=номстр[к]+1; табм[к].вывестисекцию("стр"); ик[к]=ик[к]+количество; конеццикла; конецесли; i=0; пн=0; пнв=0; for i=1 to нм цикл если номстр[i]>0 тогда пнв=пнв+1; конецесли; конеццикла; for i=1 to нм цикл если номстр[i]>0 тогда пн=пн+1; табм[i].вывестисекцию("итого"); табм[i].ПараметрыСтраницы(2,,,,,,,,,1); Табм[i].Опции(0,0,8,0,""); //ПарСтрОтчШирок); Табм[i].Защита(Константа.ФлагЗащитыТаблиц); Табм[i].ТолькоПросмотр(1); // Табм[i].Показать("Расходная /для склада/ "+отв[i],""); если пбп1=1 тогда у_при(табм[i]) конецесли; если пбп=1 тогда принтер(табм[i]) иначе Табм[i].Показать("Приходная /для склада/ "+отв[i],""); конецесли; конецесли; конеццикла; ~опс: конецпроцедуры процедура изфайла() если ФС.существуетфайл(trimall(мемо))=0 тогда предупреждение("Нет такого файла"); возврат; конецесли; ттт=создатьобъект("справочник.товары"); ллл=создатьобъект("справочник.лаборатории"); т=создатьобъект("Текст"); т.открыть(trimall(мемо)); всего=т.количествострок(); нн=0; пока нн<=всего цикл нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); если ст<>"~" тогда возврат; конецесли; новаястрока(); нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); ттт.найтипокоду(число(ст)); товар=ттт.текущийэлемент(); нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); количество=число(ст); нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); цена_вал=число(ст); нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); серия=ст; нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); годн=дата(ст); нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); серт=ст; нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); дсерт=дата(ст); нн=нн+1; ст=т.получитьстроку(нн); ст=trimall(ст); ллл.найтипонаименованию(ст); лаб=ллл.текущийэлемент(); считаемстроку(); конеццикла; конецпроцедуры Процедура ПриВыбореЗакладки(Ном,Значен); Если Значен=1 Тогда Форма.ИспользоватьСлой("Документ",2);КонецЕсли; Если Значен=2 Тогда создать_список(); Форма.ИспользоватьСлой("Бумаги_Реквизиты",2); КонецЕсли; Если Значен=3 Тогда Форма.ИспользоватьСлой("Свойства",2);КонецЕсли; КонецПроцедуры процедура ПриУдаленииСтроки() сп=создатьобъект("СписокЗначений"); если выбратьстроки()=1 тогда пока получитьстроку()=1 цикл сп.ДобавитьЗначение(число(товар.код),""+номерстроки); конеццикла; конецесли; конецпроцедуры процедура п_односерийка() сп=создатьобъект("СписокЗначений"); плохо=0; если выбратьстроки()=1 тогда пока получитьстроку()=1 цикл поз=сп.найтизначение(число(товар.код)); если поз<>0 тогда сообщить("товар """+товар+""" уже есть в строке "+поз); плохо=1; иначе сп.ДобавитьЗначение(число(товар.код),""+номерстроки); конецесли; конеццикла; конецесли; если плохо=1 тогда предупреждение("Есть повторяющиеся товары!"); пп=1;псеп=1; конецесли; конецпроцедуры процедура настоящиеприходы() если выбратьстроки()=0 тогда возврат; конецесли; сп=создатьобъект("СписокЗначений"); плохо=0; пока получитьстроку()=1 цикл нпп=1; поз=сп.найтизначение(число(товар.код)); если поз<>0 тогда плохо=1;иначе сп.ДобавитьЗначение(число(товар.код),""+номерстроки);конецесли; конеццикла; если плохо=0 тогда предупреждение("Дублей товаров нет, псевдо приход не имеет смысла!"); возврат; конецесли; // определяем количество приходов, для этого просматриваем весь список, повторяющийся товар // метим единичкой, потом просматриваем только строки с единичками, повторяющийся товар метим // двоечками и так до упора, за просмотр ничего не пометим ещераз=1; маркер=0; пока ещераз=1 цикл маркер=маркер+1; ещераз=0; сп=создатьобъект("СписокЗначений"); пока получитьстроку()=1 цикл если нпп<>маркер тогда продолжить; конецесли; поз=сп.найтизначение(число(товар.код)); если поз<>0 тогда //маркируем товар нпп=маркер+1; ещераз=1; иначе сп.ДобавитьЗначение(число(товар.код),""+номерстроки); конецесли; конеццикла; конеццикла; for i=1 to 100 do пы[i]=0; enddo; приды=приходы; приды=стрзаменить(приды," ; ","~"); приды=стрзаменить(приды," ;","~"); нд=0; пока trimall(приды)<>"" цикл птз=найти(приды,"~"); инпр=лев(приды,птз-1); приды=сред(приды,птз+1); инпр=стрзаменить(инпр,"ПриходТовара ",""); птз=найти(инпр," "); номп=лев(инпр,птз-1); датп=сред(инпр,птз+1); датп=стрзаменить(датп,"(",""); датп=стрзаменить(датп,")",""); нд=нд+1; пы[нд]=создатьобъект("документ.ПриходТовара"); если пы[нд].найтипономеру(номп,датп)=1 тогда пы[нд].сделатьнепроведенным(); пока пы[нд].выбратьстроки()=1 цикл пы[нд].получитьстроку(); пы[нд].удалитьстроку(); конеццикла; иначе пы[нд]=0; нд=нд-1; конецесли; конеццикла; // возврат; for i=1 to маркер цикл если пы[i]=0 тогда пы[i]=создатьобъект("документ.ПриходТовара");пы[i].новый(); конецесли; пы[i].ндс=ндс; пы[i].пошлина=пошлина; пы[i].склад=склад; пы[i].валюта=валюта; пы[i].валютакурс=валютакурс; пы[i].взаказ=взаказ; пы[i].поставщик=поставщик; пы[i].основание=основание; пы[i].видприхода=видприхода; пы[i].лицензия=лицензия;пы[i].гтд=гтд; пы[i].мемо=""+текущийдокумент()+" (часть "+i+"/"+маркер+") "+мемо; пы[i].вид_док=вид_док; пы[i].датадок=датадок; пз=i; конеццикла; если пз<нд тогда for j=пз+1 to нд do пы[j].удалить(1); enddo; конецесли; пока получитьстроку()=1 цикл пы[нпп].новаястрока(); пы[нпп].товар=товар; пы[нпп].серия=серия; пы[нпп].годн=годн; пы[нпп].гтд=гтд; пы[нпп].серт=серт; пы[нпп].дсерт=дсерт; пы[нпп].лаб=лаб; пы[нпп].количество=количество; пы[нпп].цена_вал=цена_вал; пы[нпп].цена_руб=цена_руб; пы[нпп].сумма_вал=сумма_вал; пы[нпп].сумма_руб=сумма_руб; пы[нпп].ндс_вал=ндс_вал; пы[нпп].ндс_руб=ндс_руб; пы[нпп].пош_вал=пош_вал; пы[нпп].пош_руб=пош_руб; пы[нпп].сумма_с_вал=сумма_с_вал; пы[нпп].сумма_с_руб=сумма_с_руб; пы[нпп].нан=нан; пы[нпп].дан=дан; конеццикла; приходы=""; for i=1 to маркер цикл пы[i].записать(); приходы=приходы+пы[i]+" ; "; конеццикла; for i=1 to маркер цикл открытьформу(пы[маркер-i+1].текущийдокумент(),,0); конеццикла; конецпроцедуры Процедура текстовая_накладная() имя=trimall(константа.путь_текстов)+trimall(""+номердок); если ФС.существуетфайл(имя)=1 тогда ФС.удалитьфайл(имя); конецесли; тд=создатьобъект("текст"); тд.добавитьстроку("Приход ?"+номердок); тд.добавитьстроку(""); тд.добавитьстроку(trimall(""+поставщик)); тд.добавитьстроку(""); _выбратьстроки(); Пока _получитьстроку() = 1 Цикл тд.добавитьстроку(trimall(""+товар.наим)+" ("+товар.марка+")"); тд.добавитьстроку(""+серия+" "+количество); КонецЦикла; тд.записать(имя); предупреждение("Так точно!"); КонецПроцедуры процедура испортить_документ() если вопрос("Вы уверены, что хотите исправить цены на """+ууу+"""?",4)=6 тогда выбратьстроки(); пока получитьстроку()=1 цикл цена_вал=цена_товара_к(товар,ууу,валюта,дата(ДатаДок)); если цена_вал=0 тогда сообщить("нет цены на "+товар.наим); конецесли; считаемстроку(); конеццикла; конецесли; конецпроцедуры функция выфа() ифф="*.mxl"; икк=""; ФС.ВыбратьФайл(0,ифф,икк,"Выбор файла","*.mxl","*.mxl",0); возврат икк+ифф; конецфункции Процедура фп() если trimall(в_файл)="" тогда возврат; конецесли; установитьпропись(валюта); Табс=СоздатьОбъект("Таблица"); табс.исходнаятаблица(в_файл); Табс.ВывестиСекцию("Шапка"); _выбратьстроки(); Ном=0; Пока _получитьстроку() = 1 do Ном=Ном+1; Табс.ВывестиСекцию("Строка"); enddo; // если скидкаотдельно=1 тогда Табс.ВывестиСекцию("скидка"); конецесли; Табс.ВывестиСекцию("Подвал"); Табс.Опции(0,0,0,0,""); Табс.параметрыстраницы(1,,,,,,,,,1); // Табс.Защита(Константа.ФлагЗащитыТаблиц); // Табс.ТолькоПросмотр(1); если пбп1=1 тогда у_при(табс) конецесли; если пбп=1 тогда принтер(табс) иначе Табс.Показать(в_файл); конецесли; КонецПроцедуры процедура ПриВводеСтроки() сп=создатьобъект("СписокЗначений"); если выбратьстроки()=1 тогда пока получитьстроку()=1 цикл сп.ДобавитьЗначение(число(товар.код),""+номерстроки); конеццикла; конецесли; конецпроцедуры процедура призаписи () Если ( ДатаДок <= Константа.ЗакрытыйПериод ) и ( НазваниеНабораПрав () <> "Администратор" ) тогда Предупреждение("Документ закрытого периода не может быть записан!"); СтатусВозврата(0); Возврат; КонецЕсли; Конецпроцедуры процедура призакрытии() Если ( ДатаДок <= Константа.ЗакрытыйПериод ) и ( НазваниеНабораПрав () <> "Администратор" ) тогда ОчиститьОкноСообщений (); возврат; Конецесли; конецпроцедуры; начать_транзакцию(); Форма.ИспользоватьЗакладки(1); Форма.Закладки.ДобавитьЗначение(1,"Документ"); Форма.Закладки.ДобавитьЗначение(2,"Бумаги_Реквизиты"); Форма.Закладки.ДобавитьЗначение(3,"Свойства"); Форма.ИспользоватьСлой("документ",2); ств=создатьобъект("справочник.валюты"); если склад.выбран()=0 тогда склад=константа.складдляприходов; конецесли; если число(импорт)=0 тогда импорт=перечисление.данет.да; конецесли; если число(изврат)=0 тогда изврат=перечисление.данет.нет; конецесли; автор(контекст); валюта.использоватьдату(дата_курса); если валютакурс=0 тогда валютакурс=валюта.курс; конецесли; вид_док=установить_вид(вид()); если число(дата1)=0 тогда дата1=датадок; конецесли; если число(дата_2)=0 тогда дата_2=датадок; конецесли; если условно.выбран()=0 тогда условно=нет; конецесли; если процент1=0 тогда процент1=100; конецесли; нвп_=нвп; ПриУдаленииСтроки(); зафиксировать_транзакцию(); надо=0; если ( ДатаДок <=Константа.ЗакрытыйПериод) и ( НазваниеНабораПрав () <> "Администратор" ) тогда Форма.ТолькоПросмотр ( 1 ); Форма.ok.Видимость ( 0 ); Сообщить ( "Документ, проведенный до "+Константа.ЗакрытыйПериод + " открыт только для просмотра!!!","!!!" ); конецесли; алфавит=константа.алфавит; в_файл=константа.приход_в_файл; псеп=пп;