Имя: Пароль:
1C
Админ
Печать приходного ордера
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
Спасибо большое, Валерий Михайлович!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан