|
Печать приходного ордера | ☑ | ||
---|---|---|---|---|
0
VIP_O
22.02.13
✎
13:53
|
Здравствуйте!
Подскажите пожалуйста, что нужно исправить и в какой строчке документа для того чтобы напечатать приходный кассовый ордер в 1с 7.7 ЗУП 1463? При нажатии на кнопку печать выдает следующие ошибки: Док<<?>>.ДатаДок Переменная не определена (Док) ?(Док<<?>>.Валютный=2,"50.11","50.1") Переменная не определена (Док) Док<<?>>.КоррСчет Переменная не определена (Док) Формат(Док<<?>>.Сумма, "Ч15.2-")+?(Док.Валютный=2," "+Док.Валюта.Наименование,"") Переменная не определена (Док) Формат(Док<<?>>.ДатаДок ,"Д (0)ДДММММГГГГ") Переменная не определена (Док) ФИО(Константа.ГлБухгалтер.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) ФИО(Константа.ГлБухгалтер.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) ФИО(Константа.Кассир.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) ФИО(Константа.Кассир.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) Формат(Док<<?>>.ДатаДок ,"Д (0)ДДММММГГГГ") Переменная не определена (Док) Док<<?>>.ПринятоОт Переменная не определена (Док) Док<<?>>.ПринятоОт Переменная не определена (Док) |
|||
1
mikecool
22.02.13
✎
13:54
|
выбрать документ для печати
|
|||
2
Тролль главный
22.02.13
✎
13:58
|
определить переменную
|
|||
3
VIP_O
22.02.13
✎
13:58
|
Михаил, подскажите я бухгалтер не знаю в какой строчке и как описано это в документе я могу с базы вам скопировать текст подскажите в какой строчке ошибка?
|
|||
4
VIP_O
22.02.13
✎
13:58
|
////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ // Перем ТаблицаПечФорм; // список печатных форм документа Перем НомерТекущейФормы; Перем НачальнаяДатаДокумента; Перем Новый; Перем СписокДействий; //****************************************************************************** Функция ВалютаДокумента(Д) Если Д.Выбран() = 1 Тогда Если (Д.Договор.ВалютаДоговора.Выбран() = 1) Тогда Возврат Д.Договор.ВалютаДоговора; КонецЕсли; ИначеЕсли ТипЗначенияСтр(Субконто2) = "Справочник" Тогда Если Субконто2.Вид() = "Договоры" Тогда Возврат Субконто2.ВалютаДоговора; КонецЕсли; КонецЕсли; Возврат ""; КонецФункции // ВалютаДокумента() //****************************************************************************** Функция ВалСуммаДокумента(Д) Если Д.Выбран() = 1 Тогда Если Д.Вид() = "ПередачаОС" Тогда ИтогВсего = Д.Цена*Д.КоличествоСтрок(); ИначеЕсли Д.Вид() = "ПередачаНМА" Тогда ИтогВсего = Д.Стоимость; // { ИМП НСВ Начало изменения ИначеЕсли Д.Вид() = "Акт" Тогда ИтогВсего = Д.Итого; // Конец изменения ИМП } Иначе ИтогВсего = Д.Итог("Всего"); КонецЕсли; Возврат ИтогВсего; КонецЕсли; Возврат ""; КонецФункции // ВалСуммаДокумента() //***************************************************************************** // КурсДокумента() // // Возвращаемое значение: // Число - значение курса. // // Вызывается из формул элементов диалога: // Колонка "Курс док.". // // Описание: // Возвращает значение курса, указанного в выбранном документе. // Функция КурсДокумента(Д) Если Д.Выбран() = 1 Тогда Если (Д.Вид() = "Счет")или(Д.Вид() = "СчетПоМатериалам") Тогда Возврат Формат(1, "Ч15.4") КонецЕсли; Если Д.Курс <> 0 Тогда Возврат СокрП(Формат(Д.Курс, "Ч15.4")); КонецЕсли; КонецЕсли; Возврат ""; КонецФункции // КурсДокумента() //******************************************************************************* Процедура УправлениеВидимостьюСуммовыхРазниц() Видимость = 0; Если ТипЗначенияСтр(Субконто2) = "Справочник" Тогда Если Субконто2.Вид()="Договоры" Тогда Если ПустоеЗначение(Субконто2.ВалютаДоговора)=0 Тогда Если Субконто2.ОплатаДоговора=1 Тогда Видимость = 1; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Если Валютный = 2 Тогда Видимость = 0; КонецЕсли; Форма.РамкаСР.Видимость(Видимость); Форма.ПодписьКурса.Видимость(Видимость); Форма.ВалютаДоговора.Видимость(Видимость); Форма.КурсОплаты.Видимость(Видимость); Форма.КурсДок.Видимость(Видимость); КонецПроцедуры // УправлениеВидимостьюВалютыПродажиПокупки() //****************************************************************************** Процедура ПриВыбореДокументаПоставки() Если (ВалютаДокумента(ДокументПоставки)<>"") Тогда КурсОплаты = ВалютаДокумента(ДокументПоставки).Курс.Получить(ДатаДок); Кратность = ВалютаДокумента(ДокументПоставки).Кратность.Получить(ДатаДок); Кратность = ?(Кратность = 0, 1, Кратность); Иначе КурсОплаты = 0; Кратность = 1; КонецЕсли; УправлениеВидимостьюСуммовыхРазниц(); КонецПроцедуры //_____________________________________________________________________________ Процедура РасчетНП() Если УчитыватьНП = 0 Тогда НП = 0; Иначе РасчетнаяСтавкаНП = СтавкаНП.Ставка/(100+СтавкаНП.Ставка); НП = Сумма*РасчетнаяСтавкаНП; КонецЕсли; КонецПроцедуры //РасчетНП //_____________________________________________________________________________ Процедура РасчетНДС() СуммаБезНП = Сумма - НП; РасчетнаяСтавкаНДС = СтавкаНДС.Ставка/(100+?(Цел(СтавкаНДС.Ставка)=СтавкаНДС.Ставка, СтавкаНДС.Ставка, 0)); НДС = СуммаБезНП*РасчетнаяСтавкаНДС; КонецПроцедуры //РасчетНДС //_____________________________________________________________________________ Процедура ПриУстановкеУчетаНП() Если УчитыватьНП = 0 Тогда СтавкаНП = глБезНалога("НП"); УказатьНП = 0; Иначе СтавкаНП = глЗначениеПоУмолчанию("ОсновнаяСтавкаНП"); КонецЕсли; Форма.УказатьНП.Доступность(УчитыватьНП); Форма.СтавкаНП.Доступность(УчитыватьНП); Форма.НП.Доступность(УчитыватьНП); Форма.ПодписьНП.Доступность(УчитыватьНП); Форма.ПодписьСтавкаНП.Доступность(УчитыватьНП); РасчетНП(); РасчетНДС(); КонецПроцедуры //ПриУстановкеУчетаНП //_____________________________________________________________________________ Процедура ПриВыбореПризнакаВалютный() Если Валютный = 2 Тогда ФлагВидимости = 1; Если Валюта.Выбран() = 0 Тогда Валюта = глЗначениеПоУмолчанию("ОсновнаяВалюта"); КонецЕсли; Иначе ФлагВидимости = 0; Если Валюта.Выбран() = 1 Тогда Валюта = ""; КонецЕсли; КонецЕсли; УправлениеВидимостьюСуммовыхРазниц(); Форма.Валюта.Видимость(ФлагВидимости); Форма.РамкаВалюты.Видимость(ФлагВидимости); КонецПроцедуры //ПриВыбореПризнакаВалютный //_____________________________________________________________________________ Функция ПоказатьКурс() Перем Стр; Если (Валютный = 2) и (Валюта.Выбран() = 1) Тогда Стр = Валюта.Курс.Получить(ДатаДок); Иначе Стр = ""; КонецЕсли; Возврат Стр; КонецФункции //ПоказатьКурс //****************************************************************************** // ПриВыбореСубконто(ТекЭлемент) // // Параметры: // ТекЭлемент - Строка. Идентификатор текущей колонки. // // Вызывается из формул элементов диалога: // Субконто1, Субконто2, Субконто3. // // Описание: // Проверяется соотвествие контрагента и договора, указанного в аналитике. // Процедура ПриВыбореСубконто(ТекЭлемент = "") ИдентификаторРеквизита = ?(ТекЭлемент = "", Форма.АктивныйЭлемент(), ТекЭлемент); ЗначениеРеквизита = ПолучитьАтрибут(ИдентификаторРеквизита); НомерСубконто = Число(Прав(ИдентификаторРеквизита, 1)); Если ТипЗначенияСтр(ЗначениеРеквизита) = "Справочник" Тогда Если ЗначениеРеквизита.Вид() = "Контрагенты" Тогда Если НомерСубконто < 3 Тогда ИдентификаторСледующегоРеквизита = Лев(ИдентификаторРеквизита, СтрДлина(ИдентификаторРеквизита)-1) + (НомерСубконто + 1); ЗначениеСледующегоРеквизита = ПолучитьАтрибут(ИдентификаторСледующегоРеквизита); Если ТипЗначенияСтр(ЗначениеСледующегоРеквизита) = "Справочник" Тогда Если ЗначениеСледующегоРеквизита.Вид() = "Договоры" Тогда Если ЗначениеРеквизита <> ЗначениеСледующегоРеквизита.Владелец Тогда УстановитьАтрибут(ИдентификаторСледующегоРеквизита, ЗначениеРеквизита.ОсновнойДоговор); Если (ВалютаДокумента(ДокументПоставки)<>"") Тогда КурсОплаты = ВалютаДокумента(ДокументПоставки).Курс.Получить(ДатаДок); Кратность = ВалютаДокумента(ДокументПоставки).Кратность.Получить(ДатаДок); Кратность = ?(Кратность = 0, 1, Кратность); Иначе КурсОплаты = 0; Кратность = 1; КонецЕсли; УправлениеВидимостьюСуммовыхРазниц(); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Если (НомерСубконто = 1) и (ПустоеЗначение(ПринятоОт) = 1) Тогда ПринятоОт = глПолноеНаименование(ЗначениеРеквизита); КонецЕсли; ИначеЕсли ЗначениеРеквизита.Вид() = "Договоры" Тогда Если (ПустоеЗначение(ЗначениеРеквизита) = 0) и (НомерСубконто > 1) Тогда ИдентификаторПредыдущегоРеквизита = Лев(ИдентификаторРеквизита, СтрДлина(ИдентификаторРеквизита)-1) + (НомерСубконто - 1); ЗначениеПредыдущегоРеквизита = ПолучитьАтрибут(ИдентификаторПредыдущегоРеквизита); Если ТипЗначенияСтр(ЗначениеПредыдущегоРеквизита) = "Справочник" Тогда Если ЗначениеПредыдущегоРеквизита.Вид() = "Контрагенты" Тогда Если ЗначениеРеквизита.Владелец <> ЗначениеПредыдущегоРеквизита Тогда УстановитьАтрибут(ИдентификаторПредыдущегоРеквизита, ЗначениеРеквизита.Владелец); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Если (ВалютаДокумента(ДокументПоставки)<>"") Тогда КурсОплаты = ВалютаДокумента(ДокументПоставки).Курс.Получить(ДатаДок); Кратность = ВалютаДокумента(ДокументПоставки).Кратность.Получить(ДатаДок); Кратность = ?(Кратность = 0, 1, Кратность); Иначе КурсОплаты = 0; Кратность = 1; КонецЕсли; УправлениеВидимостьюСуммовыхРазниц(); Если (ЗначениеРеквизита.Наименование = глИмяДоговораДляПлатежейБезДоговора) и (КоррСчет <> СчетПоКоду("62.2")) и (КоррСчет <> СчетПоКоду("62.22")) Тогда Предупреждение("Служебный договор ""Без договора..."" можно использовать |только при явно указанном счете учета выданных авансов. |Укажите другой договор."); УстановитьАтрибут(ИдентификаторРеквизита, ""); КонецЕсли; ИначеЕсли ЗначениеРеквизита.Вид() = "Сотрудники" Тогда Если (НомерСубконто = 1) и (ПустоеЗначение(ПринятоОт) = 1) Тогда ПринятоОт = ЗначениеРеквизита.Наименование; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ПриВыбореСубконто() //_____________________________________________________________________________ Процедура ПриВыбореСчета() Для А = 1 По 3 Цикл НазначитьТип("Субконто"+А,КоррСчет.ВидСубконто(А)); // Контроль использования служебного договора. ПриВыбореСубконто("Субконто"+А); КонецЦикла; ФлагВидимостиКоличества = 0; Если КоррСчет.Выбран() = 1 Тогда ФлагВидимостиКоличества = КоррСчет.Количественный; КонецЕсли; Форма.ПодписьКоличества.Видимость(ФлагВидимостиКоличества); Форма.Количество.Видимость(ФлагВидимостиКоличества); Если (Константа.ИспользоватьСписокКорректныхПроводок = Да) Тогда Если Валютный = 2 Тогда СчетКассы = СчетПоКоду("50.11"); Иначе СчетКассы = СчетПоКоду("50.1"); КонецЕсли; глПроверкаКорректныхПроводок(СчетКассы,КоррСчет); КонецЕсли; КонецПроцедуры //ПриВыбореСчета //_____________________________________________________________________________ Процедура ПриВыбореВидаДвижения() Если (ДвижениеДенежныхСредств.Выбран() = 1) и (РозничнаяВыручка = 0) Тогда Если ПустоеЗначение(ДвижениеДенежныхСредств.Счет) = 0 Тогда КоррСчет = ДвижениеДенежныхСредств.Счет; ПриВыбореСчета(); КонецЕсли; Для а = 1 по 3 Цикл Если ПустоеЗначение(ДвижениеДенежныхСредств.ПолучитьАтрибут("Субконто" + а)) = 0 Тогда УстановитьАтрибут("Субконто" + а, ДвижениеДенежныхСредств.ПолучитьАтрибут("Субконто" + а)); ПриВыбореСубконто("Субконто"+А); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры //_____________________________________________________________________________ Процедура ПриВыбореТипаВыручки() Если (РозничнаяВыручка = 1) Тогда Валютный = 1; Валюта = ""; ДвижениеДенежныхСредств = ""; Если Константа.РозницаОблагаетсяЕНВД.Получить(ДатаДок) = Перечисление.Булево.Да Тогда КоррСчет = СчетПоКоду("90.1.2"); Иначе КоррСчет = СчетПоКоду("90.1.1"); КонецЕсли; Субконто1 = ""; Субконто2 = ""; Субконто3 = ""; СтавкаНП = глБезНалога("НП"); НП = 0; УчитыватьНП = 0; СтавкаНДС = глБезНалога("НДС"); НДС = 0; Форма.ИспользоватьСлой("Основной,Розница",2); ПриВыбореСчета(); Иначе Форма.ИспользоватьСлой("Основной,НеРозница",2); ПриВыбореСчета(); ПриВыбореПризнакаВалютный(); КонецЕсли; КонецПроцедуры //_____________________________________________________________________________ Функция РубКоп(Сумма) Руб=Цел(Сумма); Коп=ОКР(100*(Сумма-Руб),0,1); СуммаРубКоп=""+Руб+"руб."+Цел(Коп/10)+(Коп-10*Цел(Коп/10))+"коп."; Возврат СуммаРубКоп; КонецФункции //_____________________________________________________________________________ Процедура Печать() НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0); ВТомЧисле = ""; СтрНДС = ""; СтрНП = ""; Если Валютный = 2 Тогда Если ПустоеЗначение(Валюта.ИмяФайлаПрописи) = 1 Тогда Предупреждение("Для выбранной валюты не указан файл прописи."); ИначеЕсли ФС.СуществуетФайл(КаталогИБ()+Валюта.ИмяФайлаПрописи) = 0 Тогда Предупреждение("Для выбранной валюты неверно указан файл прописи."); Иначе Пропись(КаталогИБ()+Валюта.ИмяФайлаПрописи); КонецЕсли; СтрСумма = Формат(Сумма,"Ч10.2-")+" "+Валюта.Наименование; Иначе Пропись(""); СтрСумма = РубКоп(Сумма); Если УказатьНДС = 1 Тогда Если НДС = 0 Тогда СтрНДС = "без налога (НДС)"; СтрНП = "."; Иначе СтрНДС = "НДС("+глПредставлениеСтавки(СтавкаНДС)+")- "+РубКоп(НДС); КонецЕсли; КонецЕсли; Если УказатьНП = 1 Тогда Если УказатьНДС = 1 Тогда СтрНДС = СтрНДС + ", "; КонецЕсли; Если СтавкаНП.Ставка = 0 Тогда СтрНП = "без налога с продаж."; Иначе СтрНП = "НП("+глПредставлениеСтавки(СтавкаНП)+")- "+РубКоп(НП); КонецЕсли; КонецЕсли; ВТомЧисле = СтрНДС + СтрНП; КонецЕсли; Таб = СоздатьОбъект("Таблица"); ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\1cbpo.mxl"; Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы); Иначе Таб.ИсходнаяТаблица("Таблица"); КонецЕсли; Таб.Вывести(); Пропись(""); Таб.ПараметрыСтраницы(,,,10,0,0,0,,,,,); Таб.Опции(0,0,0,0,"ОпцииПечатиПриходногоОрдера","ОкноПКО"); Таб.ТолькоПросмотр(1); Таб.Показать("Печать приходного кассового ордера",""); КонецПроцедуры //Печать //****************************************************************************** // ПоКнопкеПечать() // // Вызывается из формул элементов диалога: // Кнопка "кнПечать". // // Описание: // Определяется соответствующая печатная форма. // Процедура ПоКнопкеПечать(СразуНаПринтер = 0,КолЭкз = 1) Если ПустоеЗначение(НомерТекущейФормы) = 1 Тогда НомерТекущейФормы = 1; Форма.кнПечать.Заголовок(ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы, "Кнопка")); КонецЕсли; Если НомерТекущейФормы = 1 Тогда Печать(); Иначе Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(Контекст, "Контекст"); Параметры.ДобавитьЗначение(СразуНаПринтер, "Устройство"); Параметры.ДобавитьЗначение(КолЭкз, "КоличествоКопий"); ОткрытьФорму("Отчет", Параметры, глКаталогПечФорм+ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы,"Файл")); КонецЕсли; КонецПроцедуры // ПоКнопкеПечать() //****************************************************************************** // ПоКнопкеВыборПечатнойФормы() // // Вызывается из формул элементов диалога: // Кнопка "кнВыбПечать". // // Описание: // - открывает список для выбора способа печати. // - формирует таблицу по выбранному способу. // Процедура ПоКнопкеВыборПечатнойФормы() ВыбНомер = глВыборПечатнойФормы("Документ." + Вид(), ТаблицаПечФорм); Если ВыбНомер > 0 Тогда НомерТекущейФормы = ВыбНомер; Форма.кнПечать.Заголовок(ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы, "Кнопка")); ПоКнопкеПечать(); КонецЕсли; КонецПроцедуры // ПоКнопкеВыборПечатнойФормы() //_____________________________________________________________________________ Процедура ВводНового(Копирование) Новый = 1; ВерсияОбъекта = Константа.НомерРелиза1С; НомерЧекаККМ = 0; Если Копирование = 1 Тогда //копирование документа Возврат; КонецЕсли; УказатьНДС = 1; СтавкаНДС = глЗначениеПоУмолчанию("ОсновнаяСтавкаНДС"); УчитыватьНП = 0; УказатьНП = 0; СтавкаНП = глБезНалога("НП"); ФормироватьПроводки = 1; Валютный = 1; КонецПроцедуры //ВводНового //***************************************************************************** // Предопределенная процедура // Процедура ВводНаОсновании(ДокОсн) Новый = 1; ВерсияОбъекта = Константа.НомерРелиза1С; Если ДокОсн.Вид() = "ПродажаВРозницу" Тогда УказатьНДС = 0; УчитыватьНП = 0; УказатьНП = 0; ФормироватьПроводки = 0; Валютный = 1; Сумма = ДокОсн.Итог("Всего"); СобственныхТоваров = 0; КомиссионныхТоваров = 0; ДокОсн.ВыбратьСтроки(); Пока ДокОсн.ПолучитьСтроку() = 1 Цикл Если ДокОсн.Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии Тогда КомиссионныхТоваров = КомиссионныхТоваров + 1; Иначе СобственныхТоваров = СобственныхТоваров + 1; КонецЕсли КонецЦикла; Если СобственныхТоваров = ДокОсн.КоличествоСтрок() Тогда Если ДокОсн.ПродажаОблагаетсяЕНВД = 0 Тогда КоррСчет = СчетПоКоду("90.1.1"); Иначе КоррСчет = СчетПоКоду("90.1.2"); КонецЕсли; ИначеЕсли КомиссионныхТоваров = ДокОсн.КоличествоСтрок() Тогда КоррСчет = СчетПоКоду("76.5"); КонецЕсли; ПриВыбореСчета(); // { ИМП НСВ релиз 1.00 Начало изменения ИначеЕсли ДокОсн.Вид() = "СметныйРасчет" Тогда ДокументОснования = ДокОсн; ФормироватьПроводки = 1; Валютный = 1; Сумма = ДокОсн.СуммаИтогоРуб; СобственныхТоваров = 0; КомиссионныхТоваров = 0; КоррСчет = СчетПоКоду("62.1"); ПриВыбореСчета(); Субконто1 = ДокОсн.Контрагент; УказатьНДС = 0; УчитыватьНП = 0; УказатьНП = 0; Если ДокОсн.СтавкаНДС.Ставка <> 0 Тогда УказатьНДС = 1; КонецЕсли; Если ДокОсн.СтавкаНП.Ставка <> 0 Тогда УказатьНДС = 1; УчитыватьНП = 1; УказатьНП = 1; КонецЕсли; СтавкаНДС = ДокОсн.СтавкаНДС; СтавкаНП = ДокОсн.СтавкаНП; РасчетНП(); РасчетНДС(); ПринятоОт = ДокОсн.Контрагент.ПолнНаименование; Основание = "Оплата по заказу: " + глПредставлениеДокумента(ДокОсн.ДокументОснования); Приложение = "По объекту: " + ДокОсн.ОбъектСтроительства; // Конец изменения ИМП } КонецЕсли; Комментарий = "Введен на основании: "+глПредставлениеДокумента(ДокОсн); КонецПроцедуры // ВводНаОсновании() //_____________________________________________________________________________ Процедура ПриОткрытии() Если РозничнаяВыручка = 1 Тогда Форма.ИспользоватьСлой("Основной,Розница",2); Иначе Форма.ИспользоватьСлой("Основной,НеРозница",2); КонецЕсли; ПриЗаписиПерепроводить(1); глПроверкаРазрешенияРедактирования(Контекст); Если Форма.ТолькоПросмотр() = 1 Тогда Форма.КнопкаОК.Доступность(0); Форма.КнопкаЗаписать.Доступность(0); Форма.КнопкаОчиститьПринятоОт.Доступность(0); КонецЕсли; УправлениеВидимостьюСуммовыхРазниц(); Форма.УказатьНП.Доступность(УчитыватьНП); Форма.СтавкаНП.Доступность(УчитыватьНП); Форма.НП.Доступность(УчитыватьНП); Форма.ПодписьНП.Доступность(УчитыватьНП); Форма.ПодписьСтавкаНП.Доступность(УчитыватьНП); ФлагВидимостиКоличества = 0; Если КоррСчет.Выбран() = 1 Тогда ФлагВидимостиКоличества = КоррСчет.Количественный; КонецЕсли; Форма.ПодписьКоличества.Видимость(ФлагВидимостиКоличества); Форма.Количество.Видимость(ФлагВидимостиКоличества); ПриВыбореПризнакаВалютный(); НачальнаяДатаДокумента = ДатаДок; Активизировать("НомерДок",); // Заполним таблицу для выбора печатной формы НомерТекущейФормы = глУстановкаКнопкиПечать(Контекст, "Документ." + Вид(),ТаблицаПечФорм); КонецПроцедуры //ПриОткрытии //_____________________________________________________________________________ Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,ФлагСтандОбр) Если ИдентЭлемДиалога="ПринятоОт" Тогда ОткрытьФорму("Справочник.Сотрудники"); ИначеЕсли (ИдентЭлемДиалога = "КоррСчет") и (Константа.ИспользоватьСписокКорректныхПроводок = Да) Тогда СписокКорректныхПроводок = СоздатьОбъект("СписокЗначений"); Если Валютный = 2 Тогда СчетКассы = СчетПоКоду("50.11"); Иначе СчетКассы = СчетПоКоду("50.1"); КонецЕсли; СписокКорректныхПроводок.Установить("Счет", СчетКассы); СписокКорректныхПроводок.Установить("Корреспонденция", 1); глЗначениеОтбора = СписокКорректныхПроводок; ИначеЕсли ИдентЭлемДиалога = "ТорговаяТочка" Тогда ФлагСтандОбр = 0; Отбор = Перечисление.ТипыСкладов.Розничный; Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(Отбор,"ОтборСклада"); Параметры.ДобавитьЗначение(0,"ПоказыватьТипСклада"); Параметры.ДобавитьЗначение(0,"ПоказыватьТипЦен"); ОткрытьФорму("Справочник.МестаХранения.ФормаСписка",Параметры); ИначеЕсли ИдентЭлемДиалога = "ДокументПоставки" Тогда МенюР = СоздатьОбъект("СписокЗначений"); МенюР.ДобавитьЗначение("РасходнаяНакладная"); МенюР.ДобавитьЗначение("РеализацияОтгруженнойПродукции"); МенюР.ДобавитьЗначение("ОказаниеУслуг"); МенюР.ДобавитьЗначение("ВыполнениеЭтапаРабот"); МенюР.ДобавитьЗначение("ОтпускМатериаловНаСторону"); МенюР.ДобавитьЗначение("ПередачаОС"); МенюР.ДобавитьЗначение("ПередачаНМА"); МенюР.ДобавитьЗначение("Счет"); // { ИМП НСВ Начало изменения МенюР.ДобавитьЗначение("СчетПоМатериалам"); МенюР.ДобавитьЗначение("Акт"); // Конец изменения ИМП } Меню = МенюР; ТабДок = СоздатьОбъект("ТаблицаЗначений"); ТабДок.НоваяКолонка("Документ","Документ",,,"Документ",40); ТабДок.НоваяКолонка("Валюта",,,,"Валюта",7); ТабДок.НоваяКолонка("Курс","Число",10,4,,12); ТабДок.НоваяКолонка("Сумма","Число",14,2,,15); Док = СоздатьОбъект("Документ"); Док.ВыбратьПоЗначению(,ДатаДок,"Договор",Субконто2); Пока Док.ПолучитьДокумент()=1 Цикл ТекДок = Док.ТекущийДокумент(); Если (ТекДок.Вид() <> "Счет")и(ТекДок.Вид() <> "СчетПоМатериалам") Тогда Если ТекДок.Проведен()=0 Тогда Продолжить; КонецЕсли; КонецЕсли; Если Меню.Принадлежит(ТекДок.Вид())=0 Тогда Продолжить; КонецЕсли; ТабДок.НоваяСтрока(); ТабДок.Документ = ТекДок; ТабДок.Валюта = ?(ВалютаДокумента(ТекДок)="","Руб.",ВалютаДокумента(ТекДок));; ТабДок.Курс = КурсДокумента(ТекДок); ТабДок.Сумма = ВалСуммаДокумента(ТекДок); КонецЦикла; Если ТабДок.КоличествоСтрок()<>0 Тогда НомСтр = 0; Если ТабДок.ВыбратьСтроку(НомСтр,"Выберите документ поставки")=0 Тогда ФлагСтандОбр = 0; Возврат; КонецЕсли; ДокументПоставки = ТабДок.ПолучитьЗначение(НомСтр,"Документ"); ПриВыбореДокументаПоставки(); ФлагСтандОбр = 0; Возврат; Иначе Предупреждение("Нет документов для подбора."); ФлагСтандОбр = 0; Возврат; КонецЕсли; КонецЕсли; КонецПроцедуры //_____________________________________________________________________________ Процедура ОбработкаВыбораЗначения(ВыбЗнач, ИдентЭлемДиалога, ФлагСтандОбр) //предопределенная Если ИдентЭлемДиалога = "ПринятоОт" Тогда Если ВыбЗнач.Выбран() = 1 Тогда ПринятоОт = ВыбЗнач.Наименование; КонецЕсли; КонецЕсли; КонецПроцедуры //ОбработкаВыбораЗначения //_____________________________________________________________________________ Процедура ПриЗаписи() Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда СтатусВозврата(0); Возврат; ИначеЕсли глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента) = 1 Тогда СтатусВозврата(0); Возврат; КонецЕсли; Операция.Содержание = "Поступл.в кассу: "+Основание; Если Валютный = 2 Тогда Курс = Валюта.Курс.Получить(ДатаДок); Кратность = Валюта.Кратность.Получить(ДатаДок); Кратность = ?(Кратность=0,1,Кратность); СуммаПКО = Окр(Сумма*Курс/Кратность,2,1); Иначе Валюта = ""; СуммаПКО = Сумма; КонецЕсли; Операция.СуммаОперации = СуммаПКО; КонецПроцедуры //ПриЗаписи //****************************************************************************** // Предопределенная процедура // Процедура ПриЗакрытии() глОткрытьЖурнал(Контекст, Новый); КонецПроцедуры // ПриЗакрытии() //****************************************************************************** Функция ПризнакПробитияЧека() Если НомерЧекаККМ <> 0 Тогда Если НомерЧекаККМ > 0 Тогда Возврат "№ чека: "+СокрЛП(НомерЧекаККМ); Иначе Возврат "Чек пробит"; КонецЕсли; Иначе Возврат ""; КонецЕсли; КонецФункции //****************************************************************************** Процедура ПечатьЧека() Если НомерЧекаККМ <> 0 Тогда Предупреждение("Чек уже пробит на фискальном регистраторе!",60); Возврат; ИначеЕсли глФРВкл=0 Тогда Предупреждение("Фискальный регистратор не подключен!",60); Возврат; ИначеЕсли (УчитыватьНП=1) и (СтавкаНП.Ставка<>0) Тогда Предупреждение("Чтобы распечатать чек на фискальном регистраторе" + РазделительСтрок + "необходимо, чтобы ставка НП была равна 0!",60); Возврат; ИначеЕсли ПометкаУдаления()=1 Тогда Предупреждение("Документ помечен на удаление, поэтому" + РазделительСтрок + "нельзя пробить чек на фискальном регистраторе!",60); Возврат; ИначеЕсли Проведен()=0 Тогда Если Вопрос("Провести документ и пробить чек на фискальном регистраторе?","Да+Нет")="Нет" Тогда Возврат; КонецЕсли; Попытка Записать(); Провести(); Исключение Возврат; КонецПопытки; ИначеЕсли Модифицированность()=1 Тогда Если Вопрос("Сохранить документ и пробить чек на фискальном регистраторе?","Да+Нет")="Нет" Тогда Возврат; КонецЕсли; Попытка Записать(); Исключение Возврат; КонецПопытки; КонецЕсли; Список = СоздатьОбъект("ТаблицаЗначений"); Список.НоваяКолонка("ТовНаим" , "Строка"); Список.НоваяКолонка("Цена" , "Число"); Список.НоваяКолонка("Количество", "Число"); Список.НоваяКолонка("НДС" , "Число"); Список.НоваяСтрока(); Список.ТовНаим = ?(ПустаяСтрока(ПринятоОт)=0,"Принято от ","")+СокрЛП(СокрЛП(ПринятоОт)+" "+СокрЛП(Основание)); Список.Цена = Сумма; Список.Количество = 1; Список.НДС = СтавкаНДС.Ставка; СуммаЧека = Сумма; Получено = Сумма; Скидка = 0; ПризнВозврата = 0; НомерСекции = 1; НомерЧека = 0; Если глФРПечататьЧек(Список, СуммаЧека, Получено, Скидка, ПризнВозврата, НомерСекции, НомерЧека) = 1 Тогда НомерЧекаККМ = ?(НомерЧека = 0, -1, НомерЧека); ПриЗаписиПерепроводить(0); Записать(); ПриЗаписиПерепроводить(1); КонецЕсли; КонецПроцедуры //****************************************************************************** Новый = 0; ТаблицаПечФорм = СоздатьОбъект("ТаблицаЗначений"); ТаблицаПечФорм.НоваяКолонка("Название","Строка",,,,30); ТаблицаПечФорм.НоваяКолонка("Файл","Строка",,,"Файл",10); ТаблицаПечФорм.НоваяКолонка("Кнопка","Строка",,,,10); ТаблицаПечФорм.НоваяКолонка("ФайлОписания","Строка"); // добавим информацию о встроенной форме ТаблицаПечФорм.НоваяСтрока(); ТаблицаПечФорм.Название = "Приходный кассовый ордер"; ТаблицаПечФорм.Кнопка = "Печать"; СписокДействий = СоздатьОбъект("СписокЗначений"); СписокДействий.ДобавитьЗначение("Отчет о движениях документа"); СписокДействий.ДобавитьЗначение("Структура подчиненности"); СписокДействий.ДобавитьЗначение("Ввести на основании"); СписокДействий.ДобавитьЗначение("Перейти в журнал"); |
|||
5
Тролль главный
22.02.13
✎
13:59
|
(3) а я программист, помоги мне зуб вылечить
|
|||
6
Тролль главный
22.02.13
✎
13:59
|
(4) мало кода
|
|||
7
VIP_O
22.02.13
✎
14:00
|
спасибо большое, сама буду разбираться
|
|||
8
aka AMIGO
22.02.13
✎
14:05
|
После кода:
Процедура Печать() НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0); попробуй вставить оператор: Док = ТекущийДокумент(); |
|||
9
VIP_O
22.02.13
✎
14:11
|
Спасибо большое, Валерий Михайлович!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |