Налоговая накладная, 2011 , 1С Предприятие 7.7
2 страниц
1 2 >
17.02.11, 12:47
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Пожалуста помогите! Немогу понять, как прописать в модуле, форму накладной. Например, порядковий номер, автоматически заполнялся, или номер телефона. Работоспособный код, как написать? Открыть конфигурацию для Украины с новыми бланками, там обнаружил в клеточках формулы, Сред(НомерДокумента,1,1) …… Сред(ФирмаТелефоны,1,1) как объявить переменные и прописать в модуле, не знаю.( Да, скажите, да это легко, а вот пока, не знаю как!
17.02.11, 19:50
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Ziam @ 17.02.11, 15:14)
В модуле формы посмотрите процедуру Печать2011(). Она вроде во всех конфах на 7.7 так называется. Там свои переменные найдете, и как они объявляются и что с ними делают. Плюс сможете разобраться как осуществляется печать документа в 1С 7.7
Да, это я и знаю, что для Украины, там все есть, с моего вопроса это и так понятно. Там просто, все переменные в куче, что где и как не пойму! (Простой пример, на дате или телефонах был, бы достаточно. А для конфигурации, А4 БТР, не пойму. Самой фирмы А4 уже нет, не у кого спросить! 1С консультация, не смогла помочь, сказала что обратиться к разработчикам.(
18.02.11, 7:35
Завсегдатай
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0
З.Ы, Переменные в 1С объявляются в момент присваивания им какого-нибудь значения.
НомерДокумента = "" ;
Вот вам пример объявления переменной. Если вас именно эта переменная интересует позже смогу сказать строчку модкля, где она объявляется.
18.02.11, 14:16
Завсегдатай
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0
Чото я запутался, что вам надо.
Вам надо подключить к какой-то базе новую форму НН ?
У вас есть типовая конфа в которой есть эта форма и вы там не можете разобраться как она подключена? Или у вас нет типовой конфы с этой формой? Или у вас есть только макет? (сейчас у меня именно такое чувство. У вас есть макет, но нет кода, который его заполняет).
Ибо фраза
Цитата
Неплохо, полностью работающий код, написать!
мне ни о чем не говорит. Я вам написал
полностью работающий код. Можно его в модуль вставлять и он будет работать. Только я так понимаю, он делает не совсем то, что вы хотели. А я до сих пор не могу понять, чего вы хотите.
18.02.11, 14:28
Крутой
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0
Цитата(yfrf111 @ 18.02.11, 13:17)
Неплохо, полностью работающий код, написать! На примере с датой или телефонами. Я так понимаю, дальше все по аналогии, примера сделано, только менять имена переменых?
Например, НомерДокумента должен содержать 10 знаков и віравниваться по правому краю:
НомерДокумента = Прав(" " +НомерДокумента,10 );
На форме в каждой клетке:
Сред(НомерДокумента,1 ,1 )
Сред(НомерДокумента,2 ,1 )
Сред(НомерДокумента,3 ,1 )
и т.д.
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
18.02.11, 15:30
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Ziam @ 18.02.11, 15:16)
Чото я запутался, что вам надо. Вам надо подключить к какой-то базе новую форму НН ? У вас есть типовая конфа в которой есть эта форма и вы там не можете разобраться как она подключена? Или у вас нет типовой конфы с этой формой? Или у вас есть только макет? (сейчас у меня именно такое чувство. У вас есть макет, но нет кода, который его заполняет). Ибо фраза мне ни о чем не говорит. Я вам написал полностью работающий код. Можно его в модуль вставлять и он будет работать. Только я так понимаю, он делает не совсем то, что вы хотели. А я до сих пор не могу понять, чего вы хотите.
Имено так и есть! Мне надо подключить к какой-то базе, новую форму НН!
У меня есть, типовая конфа в которой есть эта форма, и я там не могу разобраться как она подключена! Половину уже потключил, то что по шаблону, а дальше пошло программированье, Дата, Номер документа, телефоны, и.т.д., то что, должно быть в квардратиках.
18.02.11, 15:48
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(alex040269 @ 18.02.11, 15:28)
Например, НомерДокумента должен содержать 10 знаков и віравниваться по правому краю:
НомерДокумента = Прав(" " +НомерДокумента,10 );
На форме в каждой клетке:
Сред(НомерДокумента,1 ,1 )
Сред(НомерДокумента,2 ,1 )
Сред(НомерДокумента,3 ,1 )
и т.д.
Спасибо, ясней не куда, обьяснили!
18.02.11, 17:11
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(alex040269 @ 18.02.11, 15:28)
Например, НомерДокумента должен содержать 10 знаков и віравниваться по правому краю:
НомерДокумента = Прав(" " +НомерДокумента,10 );
На форме в каждой клетке:
Сред(НомерДокумента,1 ,1 )
Сред(НомерДокумента,2 ,1 )
Сред(НомерДокумента,3 ,1 )
и т.д.
С датой и номером документа, все прошло гладко, застрял на телефонах
Написал ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10); и в ячейках Прав(ДтФирма.Телефон,1,1) и.т.д В самой один 1С запускаю все что с переменой ДтФирма пропало, и ругаеться Прав(ДтФирма.Телефон,1<<?>>,1) Ожидается символ ')'
18.02.11, 19:22
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Ziam @ 18.02.11, 20:03)
Полный код, пожалуйста. А то мы до Пасхи гадать будем.
Перем фФлагНового;
Перем фФлагПерегрузки;
Перем фТекТовар, фТекЦена, фКол;
Перем фНС1 ;
Функция ВыборВидНДСИзДокОснования(лДокОсн)
Перем лВидНДС;
лСписокВидовНДС=СоздатьОбъект("СписокЗначений" );
лПоз=0 ;
лДокОсн.ВыбратьСтроки();
Пока лДокОсн.ПолучитьСтроку()=1 Цикл
Если лДокОсн.Вид()="ПриходнаяНакладная" Тогда
Если лДокОсн.Товар.ВидТовара=Перечисление.Неамортизируемые.Услуга Тогда
Если лДокОсн.Производитель<>лДокОсн.ДтКлиент Тогда
Продолжить;
КонецЕсли ;
КонецЕсли ;
КонецЕсли ;
Если лСписокВидовНДС.НайтиЗначение(лДокОсн.ВидНДСвСтроке)=0 Тогда
лСписокВидовНДС.ДобавитьЗначение(лДокОсн.ВидНДСвСтроке);
КонецЕсли ;
КонецЦикла ;
Если лСписокВидовНДС.РазмерСписка()=0 Тогда
Предупреждение("Немає товарів, на які виписуються Податкові Накладні" );
Возврат ПолучитьПустоеЗначение("Справочник.СтавкиНДС" );
ИначеЕсли лСписокВидовНДС.РазмерСписка()=1 Тогда
лВидНДС=лСписокВидовНДС.ПолучитьЗначение(1 );
Иначе
Если лСписокВидовНДС.ВыбратьЗначение(лВидНДС,"Вибір ставки ПДВ, по якій виписується Податкова Накладна:" ,лПоз,0 )=0 Тогда
Возврат ПолучитьПустоеЗначение("Справочник.СтавкиНДС" );
КонецЕсли ;
КонецЕсли ;
Возврат лВидНДС;
КонецФункции
Процедура УстановкаСуммы(УстНДС=1)
Если УстНДС=1 Тогда
НДСпоДокументу = (Итог("ПродСумма" )+Реквизит4 -Реквизит5 +Реквизит1 ) * ВидНДС.ТарифНДС/100 ;
КонецЕсли ;
СуммаПоДокументу=Итог("ПродСумма" )+НДСПоДокументу+ННРПоДокументу+Реквизит4 -Реквизит5 +Реквизит1 ;
КонецПроцедуры
Процедура РасчетННР()
ННРПоДокументу=ОКР(Итог("ПродСумма" )*ВидННР.ТарифНДС/100 ,2 );
УстановкаСуммы(0 );
КонецПроцедуры
Процедура УстДокОснование() //для выбора документа-основания
лДок=СоздатьОбъект("Документ" );
Если лДок.Выбрать("Вибір видаткової накладної" ,)=1 Тогда
ДокументОснование=лДок.ТекущийДокумент();
КонецЕсли ;
КонецПроцедуры
Процедура ПриВыбореЗакладки(Ном,Значен)
Если Значен=1 Тогда
Форма.ИспользоватьСлой("Основной, Кнопки" ,2 );
ИначеЕсли Значен=2 Тогда
Форма.ИспользоватьСлой("ТабличнаяЧасть, Кнопки" ,2 );
ИначеЕсли Значен=3 Тогда
Форма.ИспользоватьСлой("ЗаПериод, Кнопки" ,2 );
КонецЕсли ;
КонецПроцедуры
Процедура ПересчетСуммы()
ПродСумма=Окр(ПродЦена*Количество,2 );
КонецПроцедуры
Процедура ДопВыбТовараРасход()
Если Товар.Выбран()=0 Тогда
Возврат ;
КонецЕсли ;
Единица=Товар.БазоваяЕдиница;
Коэффициент=1 ;
КодТовара=Товар.Код;
ДтНаправление=Товар.Направление;
КонецПроцедуры
Процедура Печать()
Перем лТабл;
Перем УсловияПродажи;
НомерДокумента = Прав(НомерДок+НомерДокумента,7 );
ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10 );
Если Итог("Количество" )=0 Тогда
Предупреждение("Невірно, або взагалі не задані рядки. К-сть невідома. Друкувати неможливо!" );
Возврат ;
КонецЕсли ;
Если ПустоеЗначение (Содержание1 )=0 Тогда
УсловияПродажи=Содержание1 ;
Иначе
УсловияПродажи=ДокДоговор;
КонецЕсли ;
лТаб=СоздатьОбъект("Таблица" );
Если ДатаДок < Дата('29.07 .2005 ') Тогда
Если ФС.СуществуетФайл(СокрЛП(КаталогБазыДанных())+"Forms\" +"rnn.mxl" )=1 Тогда
лТаб.ИсходнаяТаблица(СокрЛП(КаталогБазыДанных())+"Forms\" +"rnn.mxl" );
Иначе
лТаб.ИсходнаяТаблица("Таблица" );
КонецЕсли ;
Иначе
Если ФС.СуществуетФайл(СокрЛП(КаталогБазыДанных())+"Forms\" +"rnn2.mxl" )=1 Тогда
лТаб.ИсходнаяТаблица(СокрЛП(КаталогБазыДанных())+"Forms\" +"rnn2.mxl" );
Иначе
лТаб.ИсходнаяТаблица("Таблица2" );
КонецЕсли ;
КонецЕсли ;
лТаб.ПараметрыСтраницы(1 ,,,0 ,0 ,0 ,0 ,,,,1 );
лТаб.ВывестиСекцию("Заголовок" );
лТаб.ВывестиСекцию("Шапка" );
лТаб.ВывестиСекцию("Шапка1" );
ВыгрузитьТабличнуюЧасть(лТабл);
лТабл.Свернуть("ДатаНДС,Товар,Единица" ,"Количество,ПродСумма" );
лНС=1 ;
лА1 =0 ;лА2 =0 ;лА3 =0 ;лА4 =0 ;
лБ1 =0 ;лБ2 =0 ;лБ3 =0 ;лБ4 =0 ; лБ=0 ;
лВ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 ;
лВ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 Тогда
лТаб.ВывестиСекцию("ТекстНалогаНаРекламу" );
КонецЕсли ;
лТаб.ВывестиСекцию("Финиш" );
лТаб.Опции(0 ,1 ,0 ,0 );
лТаб.ПараметрыСтраницы(1 ,,,5 ,5 ,5 ,5 ,,,1 ,,);
лТаб.ТолькоПросмотр(1 );
лТаб.Показать("Податкова накладна" ,"" );
КонецПроцедуры
Процедура ВводНового(ПризнакКопирования,ОбъектКопирования)
Если РазрешитьВводНового()=0 Тогда
Возврат ;
КонецЕсли ;
фФлагНового=1 ;
Если ПризнакКопирования=1 Тогда
Если ПроверкаОткрытияДокумента(0 ,СокрЛП(ОбъектКопирования.АвторДокумента))=0 Тогда
СтатусВозврата(0 );
Возврат ;
КонецЕсли ;
ДатаДок=РабочаяДата();
АвторДокумента=гПользователь.ПолноеИмя;
АвторИзменения="" ;
Иначе
ЗаполнитьШапку(Контекст,1 ,Перечисление.ВидыДокументов.НалоговаяНакладнаяРасходна
я,"" );
ДокВалюта=Константа.ОснВалютаПродаж;
КонецЕсли ;
УстФирмы(Контекст,1 );
УстКурса(Контекст,1 );
КонецПроцедуры
Процедура ПриРедактированииНовойСтроки()
ВыбВидСправочника(Контекст,"Товары,Имущество" );
ДопВыбТовараРасход();
КонецПроцедуры
Процедура ПриНачалеРедактированияСтроки() ;
ВыгрузитьТабличнуюЧасть(гТабл);
КонецПроцедуры
Процедура ПриОкончанииРедактированияСтроки()
УстановкаСуммы();
КонецПроцедуры
Процедура ПриВводеСтроки()
ВыгрузитьТабличнуюЧасть(гТабл);
КонецПроцедуры
Процедура ВводНаОсновании(ДокОснование)
Перем лДатаНДС;
Если РазрешитьВводНового()=0 Тогда
Возврат ;
КонецЕсли ;
ФФлагНового=1 ;
Форма.Закладки.Сортировать(0 );
ПриВыбореЗакладки(,1 );
ДатаДок=ДокОснование.ДатаДок;
ДтФирма=ДокОснование.ДтФирма;
ДтФирма.ИспользоватьДату(ДатаДок);
УстФирмы(Контекст,1 );
ДтКлиент=ДокОснование.ДтКлиент;
ДокДоговор=ДокОснование.ДокДоговор;
ДокВалюта=ДокОснование.ДокВалюта;
ДокВалюта.ИспользоватьДату(ДатаДок);
УстКурса(Контекст,1 );
ЗаполнитьШапку(Контекст,1 ,Перечисление.ВидыДокументов.НалоговаяНакладнаяРасходна
я,"" );
УстМетки(Контекст);
ДокументОснование=ДокОснование;
лДатаНДС=ДокОснование.ДатаДок;
Если (ДокОснование.Вид()="СчетПокупателю" ) Тогда
фДок=СоздатьОбъект("Документ" );
фДок.ВыбратьПодчиненныеДокументы(,,ДокОснование);
Пока фДок.ПолучитьДокумент()=1 Цикл
Если ((фДок.Вид()="ПриходДенегНаСчет" ) ИЛИ
(фДок.Вид()="РасходнаяНакладная" ) ИЛИ
(фДок.Вид()="СводнаяРасходнаяНакладная" )) Тогда
лДатаНДС=фДок.ДатаДок;
Прервать;
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
Если ((ДокОснование.Вид()="СчетПокупателю" ) ИЛИ
(ДокОснование.Вид()="РасходнаяНакладная" ) ИЛИ
(ДокОснование.Вид()="СводнаяРасходнаяНакладная" ))
Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат ;
КонецЕсли ;
Содержание2 =ДокОснование.Содержание1 ;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
Если (ДокОснование.Вид()="СчетПокупателю" ) Тогда
ВидННР=ДокОснование.ВидННР;
ННРПоДокументу=ДокОснование.ННРПоДокументу;
Иначе
ННРПоДокументу=0 ;
КонецЕсли ;
Реквизит1 =ДокОснование.СуммаТранспорта;
ФормаРасчетов=ДокОснование.ФормаРасчетов;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не (ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли ;
НоваяСтрока();
Товар=ДокОснование.Товар;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
ДтНаправление=ДокОснование.ДтНаправление;
Единица=ДокОснование.Единица.Единица;
Коэффициент=ДокОснование.Коэффициент;
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=ДокОснование.ПродСумма*100 /(100 +ВидНДС.ТарифНДС);
Иначе
ПродСумма=ДокОснование.ПродСумма;
КонецЕсли ;
ПродЦена=ПродСумма/Количество;
ДатаНДС=лДатаНДС;
КонецЦикла ;
ИначеЕсли ((ДокОснование.Вид()="РасходнаяНакладнаяЭкспорт" ) ИЛИ
(ДокОснование.Вид()="АктВыполненныхРабот" ) ИЛИ
(ДокОснование.Вид()="СводныйСчетПокупателю" ) ИЛИ
(ДокОснование.Вид()="СчетРасписка" )) Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат ;
КонецЕсли ;
Если (ДокОснование.Вид()="СчетРасписка" ) Тогда
Содержание2 =ДокОснование.Содержание1 ;
КонецЕсли ;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
Если (ДокОснование.Вид()="АктВыполненныхРабот" ) Тогда
ВидННР=ДокОснование.ВидННР;
ННРПоДокументу=ДокОснование.ННРПоДокументу;
КонецЕсли ;
Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("СуммаТранспорта" ).Выбран()=1 Тогда
Реквизит1 =ДокОснование.СуммаТранспорта;
КонецЕсли ;
Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("ФормаРасчетов" ).Выбран()=1 Тогда
ФормаРасчетов=ДокОснование.ФормаРасчетов;
КонецЕсли ;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не (ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли ;
НоваяСтрока();
Товар=ДокОснование.Товар;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
ДтНаправление=ДокОснование.ДтНаправление;
Единица=ДокОснование.Единица.Единица;
Коэффициент=ДокОснование.Коэффициент;
Если (ДокОснование.Вид() = "СводныйСчетПокупателю" ) И
(Константа.УчетСкидки = Перечисление.Булево.Да) Тогда
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=(ДокОснование.ПродЦена1 *ДокОснование.Количество)*100 /(100 +ДокОснование.ВидНДСвСтроке.ТарифНДС);
Иначе
ПродСумма=(ДокОснование.ПродЦена1 *ДокОснование.Количество);
КонецЕсли ;
ПродЦена=ПродСумма/Количество;
ИначеЕсли (ДокОснование.Вид() = "РасходнаяНакладнаяЭкспорт" ) Тогда
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=(ДокОснование.ПродСумма-НДСвСтроке)*ДокОснование.КурсДокументаБаз;
ПродЦена=ПродСумма/Количество*ДокОснование.КурсДокументаБаз;
Иначе
ПродЦена=ДокОснование.ПродЦена*ДокОснование.КурсДокументаБаз;
ПродСумма=ДокОснование.ПродСумма*ДокОснование.КурсДокументаБаз;
КонецЕсли ;
Иначе
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСвТомЧисле Тогда
ПродСумма=(ДокОснование.ПродСумма-НДСвСтроке);
ПродЦена=ПродСумма/Количество;
Иначе
ПродЦена=ДокОснование.ПродЦена;
ПродСумма=ДокОснование.ПродСумма;
КонецЕсли ;
КонецЕсли ;
ДатаНДС=лДатаНДС;
КонецЦикла ;
ИначеЕсли ДокОснование.Вид()="АктСписанияИмущества" Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат ;
КонецЕсли ;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не (ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли ;
НоваяСтрока();
Товар=ДокОснование.Имущество;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
Дтнаправление=Товар.Направление;
Единица=Товар.БазоваяЕдиница;
Коэффициент=1 ;
ПродЦена=ДокОснование.ПродЦена1 ;
ПродСумма=ДокОснование.ПродСумма1 ;
ДатаНДС=лДатаНДС;
КонецЦикла ;
ИначеЕсли ДокОснование.Вид() = "РасходИзРозницы" Тогда
ВидНДС=ВыборВидНДСИзДокОснования(ДокОснование);
Если ПустоеЗначение(ВидНДС)=1 Тогда
Возврат ;
КонецЕсли ;
ДтПодразделение=ДокОснование.ДтПодразделение;
ДтМОЛ=ДокОснование.ДтМОЛ;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
Если Не (ДокОснование.ВидНДСвСтроке=ВидНДС) Тогда
Продолжить;
КонецЕсли ;
НоваяСтрока();
Товар=ДокОснование.Товар;
КодТовара=Товар.Код;
Количество=ДокОснование.Количество;
ДтНаправление=ДокОснование.ДтНаправление;
Единица=ДокОснование.Единица.Единица;
Коэффициент=ДокОснование.Коэффициент;
ПродСумма=ДокОснование.СебСуммаАльт - ДокОснование.НДСвСтроке;
ПродЦена=ПродСумма/Количество;
ДатаНДС=лДатаНДС;
КонецЦикла ;
ИначеЕсли ДокОснование.Вид()="ПриходДенегНаСчет" Тогда
ФормаРасчетов = ДокОснование.ФормаРасчетов;
Содержание2 = ДокОснование.Содержание1 ;
НоваяСтрока();
ДатаНДС=лДатаНДС;
Товар = Константа.ТоварПоУмолчаниюДляНН;
КодТовара = Товар.Код;
Количество = 1 ;
Единица = Перечисление.ЕдиницыИзмерения.Штука;
Коэффициент = 1 ;
Если Константа.РасчетНДС=Перечисление.СпособРасчетаНДС.НДСнаСумму Тогда
ПродЦена = ДокОснование.СуммаПоДокументу-ДокОснование.НДСпоДокументу-ДокОснование.ННРПоДокументу;
Иначе
ПродЦена = ДокОснование.СуммаПоДокументу-ДокОснование.ННРПоДокументу;
КонецЕсли ;
ПродСумма =ПродЦена;
ВидНДС=ДокОснование.ВидНДС;
НДСПоДокументу=ДокОснование.НДСпоДокументу;
ВидННР=ДокОснование.ВидННР;
ННРПоДокументу=ДокОснование.ННРПоДокументу;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку() = 1 Цикл
ДтНаправление = ДокОснование.ДтНаправление;
Прервать;
КонецЦикла ;
КонецЕсли ;
Если Метаданные.Документ(ДокОснование.Вид()).РеквизитШапки("СкидкаПоСтроке" ).Выбран()=1 Тогда
лСуммаСкидки = ДокОснование.СкидкаПоСтроке;
Если лСуммаСкидки > 0 Тогда
Реквизит5 = лСуммаСкидки;
Иначе
Реквизит4 = -лСуммаСкидки;
КонецЕсли ;
КонецЕсли ;
УстановкаСуммы();
КонецПроцедуры
Процедура ПриОткрытии()
лФлагПриоритет=ПроверкаОткрытияДокумента(фФлагНового,СокрЛП(АвторДокумента));
Если лФлагПриоритет=0 Тогда
СтатусВозврата(0 );
Возврат ;
ИначеЕсли лФлагПриоритет=1 Тогда
Форма.ТолькоПросмотр(1 );
Форма.кнОК.Доступность(0 );
КонецЕсли ;
Если ПустоеЗначение(гОткрытыйДокумент)=0 Тогда
Предупреждение("Документ відкрито тільки для перегляду!" );
Форма.ТолькоПросмотр(1 );
Форма.кнОК.Доступность(0 );
Иначе
гОткрытыйДокумент=ВзятьКонтекст(Контекст);
КонецЕсли ;
Если фФлагНового=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 Тогда
АвторИзменения=гПользователь.ПолноеИмя;
КонецЕсли ;
КонецПроцедуры
Процедура ПриЗакрытии()
Если гОткрытыйДокумент=ВзятьКонтекст(Контекст) Тогда
гОткрытыйДокумент=0 ;
КонецЕсли ;
КонецПроцедуры
Форма.Товар.ВыполнятьФормулуТолькоПриИзменении(1 );
Форма.ПродЦена.ВыполнятьФормулуТолькоПриИзменении(1 );
Форма.ИспользоватьЗакладки(1 );
Форма.Закладки.ДобавитьЗначение(1 ,"Шапка" );
Форма.Закладки.ДобавитьЗначение(2 ,"Таблична частина" );
Форма.Закладки.ДобавитьЗначение(3 ,"За період" );
ДтФирма.ИспользоватьДату(ДатаДок);
фФлагНового=0 ;
19.02.11, 0:46
Ветеран
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Почему
ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10 );
Насколько я понимаю, ДтФирма -- это фирма, зачем ее прибавлять к номеру телефона? Попробуйте так
ТелФирмы = Прав(ДтФирма.Телефон,10 );
А на это
Прав(ДтФирма.Телефон,1 <<?>>,1 )
правильно ругается: функция Прав имеет 2 параметра (в отличие от функции Сред), а Вы ей даете 3 параметра. Попробуйте так
Сред(ТелФирмы,1 ,1 )
Сред(ТелФирмы,2 ,1 )
Сред(ТелФирмы,3 ,1 )
и т.д.
19.02.11, 12:10
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(5_kopeek @ 19.02.11, 1:46)
Почему
ДтФирма = Прав(ДтФирма.Телефон+ДтФирма,10 );
Насколько я понимаю, ДтФирма -- это фирма, зачем ее прибавлять к номеру телефона? Попробуйте так
ТелФирмы = Прав(ДтФирма.Телефон,10 );
А на это
Прав(ДтФирма.Телефон,1 <<?>>,1 )
правильно ругается: функция Прав имеет 2 параметра (в отличие от функции Сред), а Вы ей даете 3 параметра. Попробуйте так
Сред(ТелФирмы,1 ,1 )
Сред(ТелФирмы,2 ,1 )
Сред(ТелФирмы,3 ,1 )
и т.д.
Ошибок в 1С нет, но и не работает, не высвечивает телефон! Ваш вариант, неверен.
19.02.11, 21:31
Говорящий
Группа: Пользователи
Сообщений: 54
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(5_kopeek @ 19.02.11, 13:24)
Вставьте после ТелФирмы = ... строку
Сообщить("Тел фирмы =" +ТелФирмы+"=" );
и скажите, что напишет при формировании печатной формы.
ТелФирмы = Сообщить<<?>>("Тел фирмы ="+ТелФирмы+"=");
{Документ.НалоговаяНакладнаяРасходная.Форма.Модуль(89)}: Процедура вызывается как функция (Сообщить)
Не нашли ответа на свой вопрос?
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!