Пожалуста помогите! Немогу понять, как прописать в модуле, форму накладной. Например, порядковий номер, автоматически заполнялся, или номер телефона. Работоспособный код, как написать? Открыть конфигурацию для Украины с новыми бланками, там обнаружил в клеточках формулы, Сред(НомерДокумента,1,1) …… Сред(ФирмаТелефоны,1,1) как объявить переменные и прописать в модуле, не знаю.( Да, скажите, да это легко, а вот пока, не знаю как!
В модуле формы посмотрите процедуру Печать2011(). Она вроде во всех конфах на 7.7 так называется. Там свои переменные найдете, и как они объявляются и что с ними делают. Плюс сможете разобраться как осуществляется печать документа в 1С 7.7
В модуле формы посмотрите процедуру Печать2011(). Она вроде во всех конфах на 7.7 так называется. Там свои переменные найдете, и как они объявляются и что с ними делают. Плюс сможете разобраться как осуществляется печать документа в 1С 7.7
Да, это я и знаю, что для Украины, там все есть, с моего вопроса это и так понятно. Там просто, все переменные в куче, что где и как не пойму! (Простой пример, на дате или телефонах был, бы достаточно. А для конфигурации, А4 БТР, не пойму. Самой фирмы А4 уже нет, не у кого спросить! 1С консультация, не смогла помочь, сказала что обратиться к разработчикам.(
З.Ы, Переменные в 1С объявляются в момент присваивания им какого-нибудь значения.
НомерДокумента = "";
Вот вам пример объявления переменной. Если вас именно эта переменная интересует позже смогу сказать строчку модкля, где она объявляется.
Неплохо, полностью работающий код, написать! На примере с датой или телефонами. Я так понимаю, дальше все по аналогии, примера сделано, только менять имена переменых?
Чото я запутался, что вам надо. Вам надо подключить к какой-то базе новую форму НН ? У вас есть типовая конфа в которой есть эта форма и вы там не можете разобраться как она подключена? Или у вас нет типовой конфы с этой формой? Или у вас есть только макет? (сейчас у меня именно такое чувство. У вас есть макет, но нет кода, который его заполняет).
Ибо фраза
Цитата
Неплохо, полностью работающий код, написать!
мне ни о чем не говорит. Я вам написал полностью работающий код. Можно его в модуль вставлять и он будет работать. Только я так понимаю, он делает не совсем то, что вы хотели. А я до сих пор не могу понять, чего вы хотите.
Неплохо, полностью работающий код, написать! На примере с датой или телефонами. Я так понимаю, дальше все по аналогии, примера сделано, только менять имена переменых?
Например, НомерДокумента должен содержать 10 знаков и віравниваться по правому краю:
Чото я запутался, что вам надо. Вам надо подключить к какой-то базе новую форму НН ? У вас есть типовая конфа в которой есть эта форма и вы там не можете разобраться как она подключена? Или у вас нет типовой конфы с этой формой? Или у вас есть только макет? (сейчас у меня именно такое чувство. У вас есть макет, но нет кода, который его заполняет).
Ибо фраза мне ни о чем не говорит. Я вам написал полностью работающий код. Можно его в модуль вставлять и он будет работать. Только я так понимаю, он делает не совсем то, что вы хотели. А я до сих пор не могу понять, чего вы хотите.
Имено так и есть! Мне надо подключить к какой-то базе, новую форму НН! У меня есть, типовая конфа в которой есть эта форма, и я там не могу разобраться как она подключена! Половину уже потключил, то что по шаблону, а дальше пошло программированье, Дата, Номер документа, телефоны, и.т.д., то что, должно быть в квардратиках.
Так что мешает глянуть как в Типовой заполняется эта форма? Или вы думаете, что тут все Телепаты и помогут вам прикрутить новую форму НН к вашей НеТиповой Конфе?
С датой и номером документа, все прошло гладко, застрял на телефонах Написал ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10); и в ячейках Прав(ДтФирма.Телефон,1,1) и.т.д В самой один 1С запускаю все что с переменой ДтФирма пропало, и ругаеться Прав(ДтФирма.Телефон,1<<?>>,1) Ожидается символ ')'
Полный код, пожалуйста. А то мы до Пасхи гадать будем.
//*********************** // Перем фФлагНового; Перем фФлагПерегрузки; Перем фТекТовар, фТекЦена, фКол; Перем фНС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; КодТовара=Товар.Код; ДтНаправление=Товар.Направление; КонецПроцедуры
Если Итог("Количество")=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 Цикл Если Не(ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда Продолжить; КонецЕсли; НоваяСтрока(); Товар=ДокОснование.Товар; КодТовара=Товар.Код; Количество=ДокОснование.Количество; ДтНаправление=ДокОснование.ДтНаправление; Единица=ДокОснование.Единица.Единица; Коэффициент=ДокОснование.Коэффициент; // 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; КонецЕсли; КонецПроцедуры
и скажите, что напишет при формировании печатной формы.
ТелФирмы = Сообщить<<?>>("Тел фирмы ="+ТелФирмы+"="); {Документ.НалоговаяНакладнаяРасходная.Форма.Модуль(89)}: Процедура вызывается как функция (Сообщить)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(yfrf111 @ 19.02.11, 21:31)
ТелФирмы = Сообщить<<?>>("Тел фирмы ="+ТелФирмы+"="); {Документ.НалоговаяНакладнаяРасходная.Форма.Модуль(89)}: Процедура вызывается как функция (Сообщить)
Напишите просто
Сообщить("Тел фирмы ="+ТелФирмы+"=");
"ТелФирмы =" не надо.
Личные бесплатные консультации не даю, для этого есть форум!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!