|
v7: Печать товарной накладной | ☑ | ||
---|---|---|---|---|
0
VIP_O
22.02.13
✎
14:28
|
Здравствуйте!
Подскажите пожалуйста, что нужно исправить и в какой строчке документа для того чтобы напечатать приходный кассовый ордер в 1с 7.7 ЗУП 1463? При нажатии на кнопку печать выдает следующие ошибки: Док<<?>>.Договор.Наименование Переменная не определена (Док) Док<<?>>.ДатаДок Переменная не определена (Док) ?(ПустаяСтрока(Док<<?>>.Товар.ПолнНаименование) = 1, Док.Товар.Наименование, Док.Товар.ПолнНаименование) Переменная не определена (Док) Док<<?>>.Товар.ЕдиницаИзмерения Переменная не определена (Док) СокрЛП(Док<<?>>.Товар.ЕдиницаИзмерения.Код) Переменная не определена (Док) Док<<?>>.Количество Переменная не определена (Док) КолВсего <<?>> Переменная не определена (КолВсего) Док<<?>>.КоличествоСтрок() Переменная не определена (Док) ФИО(Константа.Руководитель.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) ФИО(Константа.ГлБухгалтер.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) Док<<?>>.ДатаДок Переменная не определена (Док) |
|||
1
Тролль главный
22.02.13
✎
14:29
|
(0) дежавю? Печать приходного ордера
|
|||
2
VIP_O
22.02.13
✎
14:31
|
Та же самая проблема, а почему она возникает? при обновлении 1С может возникать?
|
|||
3
2S
22.02.13
✎
14:32
|
"1с 7.7 ЗУП 1463"
бухой? |
|||
4
ЧеловекДуши
22.02.13
✎
14:33
|
(2)Переменная не определена (Док)
Как бы 1С намекает... :) Переменная - wiki:Переменная_(программирование) |
|||
5
2S
22.02.13
✎
14:33
|
Накуя Док в модуле формы объекта? Или печатаешь другой док?
|
|||
6
ЧеловекДуши
22.02.13
✎
14:33
|
Казалось, при чем тут 1С 7.7 ?
|
|||
7
VIP_O
22.02.13
✎
14:35
|
товарная накладная при нажатии на кнопку печать выдает такие ошибки? просто не понятно, проблема возникает уже у второго документа, почему она происходит? бухой не бухой...но проблема остается...
|
|||
8
Тролль главный
22.02.13
✎
14:38
|
(7) ага, да ты тот еще тролль
|
|||
9
Попытка1С
22.02.13
✎
14:47
|
"1с 7.7 ЗУП "
сильно.. |
|||
10
Privalov
22.02.13
✎
14:49
|
Тролль ))
|
|||
12
VIP_O
22.02.13
✎
14:59
|
2S, печатаю товарную накладную, просто в теме ошиблась и написала про приходный ордер...:)))
|
|||
13
VIP_O
22.02.13
✎
15:04
|
*тьфу блин в тексте вопроса
|
|||
14
Соло
22.02.13
✎
15:17
|
где фото?
|
|||
15
VIP_O
22.02.13
✎
15:28
|
причем тут фото?
|
|||
16
VIP_O
22.02.13
✎
15:31
|
я у вас знающих, умных программистов, спрашиваю совета, а н е на кастинг мисс мира прошусь...
|
|||
17
VIP_O
22.02.13
✎
15:34
|
Подскажите пожалуйста, что нужно исправить и в какой строчке документа для того чтобы напечатать товарную накладную в 1с 7.7 ЗУП 1463?
При нажатии на кнопку печать выдает следующие ошибки: Док<<?>>.Договор.Наименование Переменная не определена (Док) Док<<?>>.ДатаДок Переменная не определена (Док) ?(ПустаяСтрока(Док<<?>>.Товар.ПолнНаименование) = 1, Док.Товар.Наименование, Док.Товар.ПолнНаименование) Переменная не определена (Док) Док<<?>>.Товар.ЕдиницаИзмерения Переменная не определена (Док) СокрЛП(Док<<?>>.Товар.ЕдиницаИзмерения.Код) Переменная не определена (Док) Док<<?>>.Количество Переменная не определена (Док) КолВсего <<?>> Переменная не определена (КолВсего) Док<<?>>.КоличествоСтрок() Переменная не определена (Док) ФИО(Константа.Руководитель.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) ФИО(Константа.ГлБухгалтер.Получить(Док<<?>>.ДатаДок)) Переменная не определена (Док) Док<<?>>.ДатаДок Переменная не определена (Док) |
|||
18
VIP_O
22.02.13
✎
15:37
|
////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ // Перем ТаблицаПечФорм; // список печатных форм документа Перем НомерТекущейФормы; Перем НачальнаяДатаДокумента; Перем КонтекстФормыПодбора; Перем Новый; Перем СписокДействий; Перем СтарыйДоговор; Перем СтарыйКурс; Перем КодВидаОтгрузки; Перем ТекущийВариантРасчетаНалогов; //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ // //****************************************************************************** // ПолучитьКодВидаОтгрузки(); // Функция ПолучитьКодВидаОтгрузки() ПромежуточныйКод = ВидОтгрузки - 10; Если (МестоХранения.Выбран() = 0) Тогда Возврат ПромежуточныйКод; КонецЕсли; Если (МестоХранения.ТипСклада.Выбран() = 0) Тогда Возврат ПромежуточныйКод; КонецЕсли; Если (МестоХранения.ТипСклада = Перечисление.ТипыСкладов.Розничный) и (ПромежуточныйКод = 3) Тогда ПромежуточныйКод = ПромежуточныйКод + 1; КонецЕсли; Возврат ПромежуточныйКод; КонецФункции //****************************************************************************** // ИнформацияОДоговоре() // // Возвращаемое значение: // Строка - Наименование валюты договора и валюты оплаты. // // Вызывается из формул элементов диалога: // Текст "ИнформацияОДоговоре". // // Описание: // Формирует строку, содержащую наименование валюты договора и валюты оплаты. // Функция ИнформацияОДоговоре() Стр = ""; Если Договор.Выбран() = 1 Тогда Если Договор.ВалютаДоговора.Выбран() = 1 Тогда Стр = "Валюта договора: " + Договор.ВалютаДоговора; КонецЕсли; КонецЕсли; Возврат Стр; КонецФункции // ИнформацияОДоговоре() //****************************************************************************** // УправлениеКурсом(ИзменитьКурс) // // Параметры: // ИзменитьКурс - Число. 1 - установить новый курс валюты, 0 - не изменять. // // Описание: // При выбранной иностранной валюте делает видимым поле "Курс" и записывает // в него значение из справочника. // Процедура УправлениеКурсом(ИзменитьКурс=0) ВидимостьКурса = Договор.ВалютаДоговора.Выбран(); Форма.ПодписьКурса.Видимость(ВидимостьКурса); Форма.Курс.Видимость(ВидимостьКурса); СтарыйКурс = ?(Курс = 0, 1, Курс); Если ИзменитьКурс = 1 Тогда Если ВидимостьКурса = 1 Тогда Курс = Договор.ВалютаДоговора.Курс.Получить(ДатаДок); Иначе Курс = 0; КонецЕсли; КонецЕсли; КонецПроцедуры // УправлениеКурсом() //****************************************************************************** // ПриВыбореВариантаЗачетаАванса() // // Вызывается из формул элементов диалога: // Поле со списком "ВариантыЗачетаАванса". // // Описание: // Устанавливает значение реквизита "ЗачитыватьАванс". // Процедура ПриВыбореВариантаЗачетаАванса() ЗачитыватьАванс = ВариантЗачетаАванса.ПолучитьЗначение(ВариантЗачетаАванса.ТекущаяСтрока()); КонецПроцедуры // ПриВыбореВариантаЗачетаАванса() //***************************************************************************** // УправлениеВидимостьюГТД(РежимПроверки) // // Параметры: // Режим: 1 - анализировать всю таблицу // 0 - анализировать только текущую строку. // // Вызывается из формул элементов диалога: // Нет. // // Описание: // Анализиреутся необходимость в рекизите "ГТД" табличной части. // Процедура УправлениеВидимостьюГТД(РежимПроверки = 0) Если КодВидаОтгрузки >= 3 Тогда Если РежимПроверки = 0 Тогда Если Товар.Выбран() = 1 Тогда Если (Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар) и (Товар.СтранаПроисхожд = 0) Тогда Форма.ГТД.Видимость(1); КонецЕсли; КонецЕсли; Иначе // проверить все строки Видимость = 0; ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если Товар.Выбран() = 1 Тогда Если (Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар) и (Товар.СтранаПроисхожд = 0) Тогда Видимость = 1; Прервать; КонецЕсли; КонецЕсли; КонецЦикла; Форма.ГТД.Видимость(Видимость); КонецЕсли; Иначе Форма.ГТД.Видимость(0); КонецЕсли; КонецПроцедуры // УправлениеВидимостьюГТД() //****************************************************************************** // УправлениеВидимостьюСлояКомиссия() // // Параметры: // РежимПроверки: 1 - анализировать все строки табличной части; // 0 - анализировать только текущую строку табличной части. // // Вызывается из формул элементов диалога: // Нет. // // Описание: // Анализиреутся необходимость в слое "Комиссия". // Процедура УправлениеВидимостьюСлояКомиссия(РежимПроверки = 0) СлойНужен = 0; // Этот слой нужен только в случае реализации (отгрузке) товаров, принятых на комиссию. Если КодВидаОтгрузки >= 3 Тогда // если возврат поставщику. Форма.ИспользоватьСлой("Комиссия", 0); // если слой уже виден, то и аналировать не надо ИначеЕсли Форма.ПодписьКомитента.Видимость() = 0 Тогда Если РежимПроверки = 0 Тогда Если Товар.Выбран() = 1 Тогда Если (Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар) и (Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии) Тогда СлойНужен = 1; КонецЕсли; КонецЕсли; Иначе // анализировать все строки табличной части ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если (Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар) и (Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии) Тогда СлойНужен = 1; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; Если СлойНужен = 1 Тогда Форма.ИспользоватьСлой("Комиссия", 1); КонецЕсли; КонецЕсли; КонецПроцедуры // УправлениеВидимостьюСлояКомиссия() //****************************************************************************** // РассчитатьНалоги() // // Описание: // Пересчитывает значения численных реквизитов табличной части документа // в зависимости от найденных ставок налогов и выбранного варианта формирования // отпускных цен. // Процедура РассчитатьНалоги() НДС = глПоказательДокумента(Контекст, "НДС"); НП = глПоказательДокумента(Контекст, "НП"); Всего = глПоказательДокумента(Контекст, "СуммаСНалогами"); Форма.НДС.Видимость(глПризнакУчетаНалога(Контекст, "НДС")); Форма.НП.Видимость(глПризнакУчетаНалога(Контекст, "НП")); КонецПроцедуры // РассчитатьНалоги() //***************************************************************************** // Пересчет(ИмяРеквизита) // // Параметры: // ИмяРеквизита - Строка. Идентификатор колонки из формулы которой вызывается // процедура. // // Вызывается из формул элементов диалога: // Колонка "Товар", // Колонка "Количество", // Колонка "Цена", // Колонка "Сумма", // Колонка "НДС", // Колонка "НП", // Колонка "Всего". // // Описание: // Пересчитывает значения численных реквизитов табличной части документа. // Процедура Пересчет(ИмяРеквизита="") Если ИмяРеквизита = "" Тогда // вызов из формулы колонки табличной части ИмяРеквизита = Форма.ТекущаяКолонка(); КонецЕсли; Если Товар.Выбран() = 1 Тогда Если (ИмяРеквизита = "Товар") Тогда Цена = глПолучитьЦену(Контекст,Товар,ТипЦен,ДатаДок,?(Договор.Выбран() = 0,"",Договор.ВалютаДоговора),Курс); Если Количество <> 0 Тогда Пересчет("Цена"); КонецЕсли; УправлениеВидимостьюСлояКомиссия(); УправлениеКурсом(); УправлениеВидимостьюГТД(); ИначеЕсли (ИмяРеквизита = "Количество") Тогда Сумма = Цена*Количество; РассчитатьНалоги(); ИначеЕсли (ИмяРеквизита = "Цена") Тогда Сумма = Цена*Количество; РассчитатьНалоги(); ИначеЕсли (ИмяРеквизита = "Сумма") Тогда РассчитатьНалоги(); Цена = ?(Количество = 0, Сумма, Сумма/Количество); ИначеЕсли (ИмяРеквизита = "НДС") или (ИмяРеквизита = "НП") Тогда Всего = глПоказательДокумента(Контекст, "СуммаСНалогами"); КонецЕсли; КонецЕсли; КонецПроцедуры // Пересчет() //****************************************************************************** Процедура ПересчитатьЦены() ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл Пересчет("Товар"); КонецЦикла; КонецПроцедуры //***************************************************************************** // ПриВыбореВариантаРасчетаНалогов() // // Вызывается из формул элементов диалога: // Поле ввода "ВариантРасчетаНалогов". // // Описание: // Пересчитывает суммы в документе при смене варианта расчета налогов. // Процедура ПриВыбореВариантаРасчетаНалогов() Если ВариантРасчетаНалогов = ТекущийВариантРасчетаНалогов Тогда Возврат КонецЕсли; Если КоличествоСтрок() > 0 Тогда Ответ = Вопрос("Пересчитать суммы налогов в существующих строках |табличной части (суммы налогов будут |обновлены в соответствии с выбранным вариантом)?", "Да+Нет+Отмена"); Если Ответ = "Да" Тогда ОбщееКоличество = КоличествоСтрок(); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл РассчитатьНалоги(); Состояние("Обработано: " + Окр(НомерСтроки/ОбщееКоличество*100, 0, 1) + "%"); КонецЦикла; ИначеЕсли Ответ = "Отмена" Тогда ВариантРасчетаНалогов = ТекущийВариантРасчетаНалогов; КонецЕсли; КонецЕсли; УчитыватьНП = глПризнакУчетаНалога(Контекст, "НП"); УчитыватьНДС = глПризнакУчетаНалога(Контекст, "НДС"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл НДС = ?(УчитыватьНДС = 0, 0, НДС); НП = ?(УчитыватьНП = 0, 0, НП); КонецЦикла; Форма.НДС.Видимость(УчитыватьНДС); Форма.НП.Видимость(УчитыватьНП); КонецПроцедуры // ПриВыбореВариантаРасчетаНалогов() //***************************************************************************** // ПриВыбореТипаЦен() // // Вызывается из формул элементов диалога: // Поле ввода "Тип цен" // // Описание: // Проверяет соответствие типа цен. // Процедура ПриВыбореТипаЦен() Если (ТипЦен.Выбран()=1)и(КоличествоСтрок()>0) Тогда Если Вопрос("Перезаполнить цены в документе?","Да+Нет",60) = "Да" Тогда ПересчитатьЦены(); КонецЕсли; КонецЕсли; КонецПроцедуры //***************************************************************************** // ПроверитьДоговор() // Процедура ПроверитьДоговор() СтараяВалюта = ПолучитьПустоеЗначение("Справочник.Валюты"); НоваяВалюта = ПолучитьПустоеЗначение("Справочник.Валюты"); НовыйКурс = ?(Курс = 0, 1, Курс); Если КоличествоСтрок() = 0 Тогда Возврат; КонецЕсли; Если ПустоеЗначение(СтарыйДоговор) = 1 Тогда СтараяВалюта = ПолучитьПустоеЗначение("Справочник.Валюты"); Иначе СтараяВалюта = СтарыйДоговор.ВалютаДоговора; КонецЕсли; Если ПустоеЗначение(Договор) = 1 Тогда НоваяВалюта = ПолучитьПустоеЗначение("Справочник.Валюты"); Иначе НоваяВалюта = Договор.ВалютаДоговора; КонецЕсли; Если СтараяВалюта <> НоваяВалюта Тогда Если Вопрос("Изменена валюта договора."+РазделительСтрок+"Пересчитать цены в документе?","Да+Нет",30) = "Да" Тогда ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл Цена = глПересчет(Цена,СтараяВалюта,СтарыйКурс,НоваяВалюта,НовыйКурс); Пересчет("Цена"); КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры //***************************************************************************** // ПриВыбореДоговора() // // Вызывается из формул элементов диалога: // Поле ввода "Договор" // // Описание: // Проверяет соответствие договора выбранному контрагенту. // Процедура ПриВыбореДоговора() глПриВыбореДоговора(Контрагент, Договор); УправлениеКурсом(1); ПроверитьДоговор(); КонецПроцедуры // ПриВыбореДоговора() //***************************************************************************** // ПриВыбореКонтрагента() // // Вызывается из формул элементов диалога: // Поле ввода "Контрагент". // // Описание: // Проверяет соответствие договора выбранному контрагенту. // Процедура ПриВыбореКонтрагента() Плательщик = Контрагент; глПриВыбореКонтрагента(Контрагент, Договор); УправлениеКурсом(1); ПроверитьДоговор() КонецПроцедуры // ПриВыбореКонтрагента() //***************************************************************************** // ПриВыбореКурса() // // Вызывается из формул элементов диалога: // Поле ввода "Курс" // // Описание: // Проверяет соответствие типа цен. // Процедура ПриВыбореКурса() // КонецПроцедуры //****************************************************************************** // ПредставлениеКомитента() // // Вызывается из формул элементов диалога: // Текст "ПредставлениеКомитента" // // Возвращаемое значение: // Стрка - наименование комитента. // // Описание: // Формурует строку с наименованием комитента, поставившего товар. // Функция ПредставлениеКомитента() Перем Предст; Если Комитент.Выбран() = 1 Тогда Предст = СокрЛП(Комитент.Наименование); Иначе Предст = "<Автовыбор>"; КонецЕсли; Возврат Предст; КонецФункции // ПредставлениеКомитента() //****************************************************************************** // ПредставлениеДоговораКомиссии() // // Вызывается из формул элементов диалога: // Текст "ПредставлениеДоговораКомиссии" // // Возвращаемое значение: // Стрка - наименование договора. // // Описание: // Формурует строку с наименованием договора с комитентом, по которому был // поставлен товар. // Функция ПредставлениеДоговораКомиссии() Перем Предст; Если ДоговорКомиссии.Выбран() = 1 Тогда Предст = СокрЛП(ДоговорКомиссии.Наименование); Иначе Предст = "<Автовыбор>"; КонецЕсли; Возврат Предст; КонецФункции // ПредставлениеДоговораКомиссии() //****************************************************************************** // ВыборКомитента() // // Вызывается из формул элементов диалога: // Кнопка "КнопкаВыбораКомитнета" // // Описание: // Устанавливает значение реквизита табличной части "Комитент". // Процедура ВыборКомитента() Если Товар.Выбран() = 0 Тогда ИначеЕсли Товар.ТипНоменклатуры.Выбран() = 0 Тогда ИначеЕсли Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Товар Тогда ИначеЕсли Товар.ТипТовара.Выбран() = 0 Тогда ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии Тогда ПунктМеню = 1; Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("Автовыбор при проведении"); Меню.ДобавитьЗначение("Подобрать по бух.итогам"); Меню.ДобавитьЗначение("Выбрать из справочника"); Меню.ВыбратьЗначение(,,ПунктМеню,,1); Если ПунктМеню = 1 Тогда Комитент = ""; ДоговорКомиссии = ""; ИначеЕсли ПунктМеню = 2 Тогда Если ДатаДок > КонецРассчитанногоПериодаБИ() Тогда Предупреждение("На " + ДатаДок + " бухгалтерские итоги не рассчитаны! |Расчет итогов выполняется в режиме |""Операции - Управление бухгалтерскими итогами""."); ИначеЕсли (Выбран() = 0) или (Модифицированность() = 1) Тогда Предупреждение("Для подбора комитента по данным бухгалтерского учета |необходимо записать документ."); Иначе БухИт = СоздатьОбъект("БухгалтерскиеИтоги"); ТаблицаКомитентов = СоздатьОбъект("ТаблицаЗначений"); ТаблицаКомитентов.НоваяКолонка("Комитент",,,,,20); ТаблицаКомитентов.НоваяКолонка("ДоговорКомиссии",,,,"Договор",20); ТаблицаКомитентов.НоваяКолонка("Остаток",,,,,10,"Ч10.2.,",2); ТаблицаКомитентов.НоваяКолонка("Сумма",,,,,15,"Ч15.2-,",2); ТаблицаКомитентов.НоваяКолонка("Цена",,,,,10,"Ч10.2-,",2); БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Товар, 2); БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты); БухИт.ИспользоватьСубконто(ВидыСубконто.Договоры); БухИт.ВыполнитьЗапрос(ТекущийДокумент(),,"004"); БухИт.ВыбратьСубконто(2); Пока БухИт.ПолучитьСубконто(2) = 1 Цикл ТаблицаКомитентов.НоваяСтрока(); ТаблицаКомитентов.Комитент = БухИт.Субконто(2); ТаблицаКомитентов.ДоговорКомиссии = "Всего:"; ТаблицаКомитентов.Остаток = БухИт.СНД("К"); ТаблицаКомитентов.Сумма = БухИт.СНД("С"); ТаблицаКомитентов.Цена = ТаблицаКомитентов.Сумма / ТаблицаКомитентов.Остаток; БухИт.ВыбратьСубконто(3); Пока БухИт.ПолучитьСубконто(3) = 1 Цикл ТаблицаКомитентов.НоваяСтрока(); ТаблицаКомитентов.Комитент = БухИт.Субконто(2); ТаблицаКомитентов.ДоговорКомиссии = БухИт.Субконто(3); ТаблицаКомитентов.Остаток = БухИт.СНД("К"); ТаблицаКомитентов.Сумма = БухИт.СНД("С"); ТаблицаКомитентов.Цена = ТаблицаКомитентов.Сумма / ТаблицаКомитентов.Остаток; КонецЦикла; КонецЦикла; Позиция = 1; Если ТаблицаКомитентов.ВыбратьСтроку(Позиция,"Выберите комитента") = 0 Тогда ИначеЕсли Позиция > 0 Тогда Комитент = ТаблицаКомитентов.ПолучитьЗначение(Позиция,"Комитент"); Дог = ТаблицаКомитентов.ПолучитьЗначение(Позиция,"ДоговорКомиссии"); Если ТипЗначенияСтр(Дог) = "Справочник" Тогда ДоговорКомиссии = Дог; Иначе ДоговорКомиссии = ""; КонецЕсли; КонецЕсли; КонецЕсли; Иначе //Если ПунктМеню = 3 Тогда СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); Если СпрКонтр.Выбрать("Выберите комитента",) = 1 Тогда Комитент = СпрКонтр.ТекущийЭлемент(); глПриВыбореКонтрагента(Комитент,ДоговорКомиссии); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ВыборКомитента() //****************************************************************************** // ВыборДоговораКомиссии() // // Вызывается из формул элементов диалога: // Кнопка "КнопкаВыбораДоговораКомиссии" // // Описание: // Устанавливает значение реквизита табличной части "ДоговорКомиссии". // Процедура ВыборДоговораКомиссии() Если Товар.Выбран() = 0 Тогда ИначеЕсли Товар.ТипНоменклатуры.Выбран() = 0 Тогда ИначеЕсли Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Товар Тогда ИначеЕсли Товар.ТипТовара.Выбран() = 0 Тогда ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии Тогда ПунктМеню = 1; Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("Автовыбор при проведении"); Меню.ДобавитьЗначение("Подобрать по бух.итогам"); Меню.ДобавитьЗначение("Выбрать из справочника"); Меню.ВыбратьЗначение(,,ПунктМеню,,1); Если ПунктМеню = 1 Тогда ДоговорКомиссии = ""; ИначеЕсли ПунктМеню = 2 Тогда Если ДатаДок > КонецРассчитанногоПериодаБИ() Тогда Предупреждение("На " + ДатаДок + " бухгалтерские итоги не рассчитаны! |Расчет итогов выполняется в режиме |""Операции - Управление бухгалтерскими итогами""."); ИначеЕсли (Выбран() = 0) или (Модифицированность() = 1) Тогда Предупреждение("Для подбора договора комиссии по данным бухгалтерского учета |необходимо записать документ."); Иначе БухИт = СоздатьОбъект("БухгалтерскиеИтоги"); ТаблицаКомитентов = СоздатьОбъект("ТаблицаЗначений"); Если Комитент.Выбран() = 0 Тогда ТаблицаКомитентов.НоваяКолонка("Комитент",,,,,20); КонецЕсли; ТаблицаКомитентов.НоваяКолонка("ДоговорКомиссии",,,,"Договор",20); ТаблицаКомитентов.НоваяКолонка("Остаток",,,,,10,"Ч10.2.,",2); ТаблицаКомитентов.НоваяКолонка("Сумма",,,,,15,"Ч15.2-,",2); ТаблицаКомитентов.НоваяКолонка("Цена",,,,,10,"Ч10.2-,",2); Если Комитент.Выбран() = 0 Тогда БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Товар, 2); БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты); БухИт.ИспользоватьСубконто(ВидыСубконто.Договоры); БухИт.ВыполнитьЗапрос(ТекущийДокумент(),,"004"); БухИт.ВыбратьСубконто(2); Пока БухИт.ПолучитьСубконто(2) = 1 Цикл ТаблицаКомитентов.НоваяСтрока(); ТаблицаКомитентов.Комитент = БухИт.Субконто(2); ТаблицаКомитентов.ДоговорКомиссии = "Всего:"; ТаблицаКомитентов.Остаток = БухИт.СНД("К"); ТаблицаКомитентов.Сумма = БухИт.СНД("С"); ТаблицаКомитентов.Цена = ТаблицаКомитентов.Сумма / ТаблицаКомитентов.Остаток; БухИт.ВыбратьСубконто(3); Пока БухИт.ПолучитьСубконто(3) = 1 Цикл ТаблицаКомитентов.НоваяСтрока(); ТаблицаКомитентов.Комитент = БухИт.Субконто(2); ТаблицаКомитентов.ДоговорКомиссии = БухИт.Субконто(3); ТаблицаКомитентов.Остаток = БухИт.СНД("К"); ТаблицаКомитентов.Сумма = БухИт.СНД("С"); ТаблицаКомитентов.Цена = ТаблицаКомитентов.Сумма / ТаблицаКомитентов.Остаток; КонецЦикла; КонецЦикла; Иначе БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Товар, 2); БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Комитент); БухИт.ИспользоватьСубконто(ВидыСубконто.Договоры); БухИт.ВыполнитьЗапрос(ТекущийДокумент(),,"004"); БухИт.ВыбратьСубконто(3); Пока БухИт.ПолучитьСубконто(3) = 1 Цикл ТаблицаКомитентов.НоваяСтрока(); ТаблицаКомитентов.ДоговорКомиссии = БухИт.Субконто(3); ТаблицаКомитентов.Остаток = БухИт.СНД("К"); ТаблицаКомитентов.Сумма = БухИт.СНД("С"); ТаблицаКомитентов.Цена = ТаблицаКомитентов.Сумма / ТаблицаКомитентов.Остаток; КонецЦикла; КонецЕсли; Позиция = 1; Если Комитент.Выбран() = 1 Тогда ЗаголовокВыбора = "Выберите договор комиссии"; Иначе ЗаголовокВыбора = "Выберите комитента"; КонецЕсли; Если ТаблицаКомитентов.ВыбратьСтроку(Позиция,"Выберите комитента") = 0 Тогда ИначеЕсли Позиция > 0 Тогда Если Комитент.Выбран() = 0 Тогда Комитент = ТаблицаКомитентов.ПолучитьЗначение(Позиция,"Комитент"); КонецЕсли; Дог = ТаблицаКомитентов.ПолучитьЗначение(Позиция,"ДоговорКомиссии"); Если ТипЗначенияСтр(Дог) = "Справочник" Тогда ДоговорКомиссии = Дог; Иначе ДоговорКомиссии = ""; КонецЕсли; КонецЕсли; КонецЕсли; Иначе //Если ПунктМеню = 3 Тогда Если Комитент.Выбран() = 0 Тогда СпрКонтр = СоздатьОбъект("Справочник.Контрагенты"); Если СпрКонтр.Выбрать("Выберите комитента",) = 1 Тогда Комитент = СпрКонтр.ТекущийЭлемент(); глПриВыбореКонтрагента(Комитент,ДоговорКомиссии); КонецЕсли; КонецЕсли; Если Комитент.Выбран() = 1 Тогда СпрДог = СоздатьОбъект("Справочник.Договоры"); СпрДог.ИспользоватьВладельца(Комитент); Если СпрДог.Выбрать("Выберите договор комиссии",) = 1 Тогда ДоговорКомиссии = СпрДог.ТекущийЭлемент(); глПриВыбореДоговора(Комитент,ДоговорКомиссии); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ВыборДоговораКомиссии() //***************************************************************************** // ИтоговаяСтрока() // // Вызывается из формул элементов диалога: // Текст ИтоговаяСтрока. // // Описание: // Формирует строку, содержащую итоговые суммы колонок табличной части. // Функция ИтоговаяСтрока() ИтСтр = "Итого отгружено на сумму: " + СокрЛ(Формат(Итог("Всего"),"Ч20.2-,")) + ", "+ "в т.ч. НДС: " + СокрЛ(Формат(Итог("НДС"),"Ч20.2-,")); Если Итог("НП") > 0 Тогда ИтСтр = ИтСтр + ", НП: " + СокрЛ(Формат(Итог("НП"),"Ч20.2-,")); КонецЕсли; Возврат ИтСтр; КонецФункции // ИтоговаяСтрока() //****************************************************************************** // Печать() // // Вызывается из формул элементов диалога: // Кнопка "Печать". // // Описание: // Формирование печатной формы документа. // Процедура Печать() НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0); //Для простоты настройки печатной формы примем следующие соглашения: // - высота строк в таблице печатной формы задана жестко, // тогда известно, сколько строк помещается на странице; СтрокНаСтранице = 20; // - высота шапки и подвала задана жестко и кратна высоте строк таблицы, // тогда можно указать, сколько строк занимают шапка и подвал // в пересчете на строки таблицы; СтрокШапки = 11; СтрокПодвала = 8; // - для нормальной работы алгоритма необходимо, чтобы шапка и подвал // могли поместиться на одной странице + хотя бы одна строка таблицы: // СтрокНаСтранице >= СтрокШапки + СтрокПодвала + 1 // - если подвал не помещается на странице, он переносится на другую // страницу с последней строкой; исключение составляет случай, // когда в таблице всего одна строка. Если КоличествоСтрок() <= 3 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки+КоличествоСтрок()+СтрокПодвала)/СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки+КоличествоСтрок()-1)/СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; //Если ПереноситьПоследнююСтроку = 1 - переносить, //если ПереноситьПоследнююСтроку = 0 - не надо переносить. Если Итог("НП") > 0 Тогда ФлагНП = 1; Иначе ФлагНП = 0; КонецЕсли; Если Договор.ВалютаДоговора.Выбран() = 1 Тогда ЦеныВДоговоре = 2; Кратность = Договор.ВалютаДоговора.Кратность.Получить(ДатаДок); Кратность = ?(Кратность = 0, 1, Кратность); Если Договор.ВестиУчетРасчетовУЕ = 1 Тогда Кратность = Кратность * 100 / (100 + Договор.ПроцентКорректировкиКурсаУЕ); КонецЕсли; Иначе ЦеныВДоговоре = 1; КонецЕсли; Таб = СоздатьОбъект("Таблица"); ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\1cbt-12.mxl"; Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы); Иначе Таб.ИсходнаяТаблица("ТОРГ-12"); КонецЕсли; // формирование адреса поставщика Если СтрДлина(СокрЛП(Константа.ИННОрганизации))<13 Тогда ИННОрганизации = СокрЛП(Константа.ИННОрганизации); ИначеЕсли Найти("0123456789",СРЕД(Константа.ИННОрганизации,11,1))=0 Тогда ИННОрганизации = СРЕД(Константа.ИННОрганизации,1,10); Иначе ИННОрганизации = СРЕД(Константа.ИННОрганизации,1,12); КонецЕсли; ОрганизацияАдрес = СокрЛП(Константа.НазваниеОрганизации); глДобавитьРеквизит(ОрганизацияАдрес, ", ИНН ", ИННОрганизации); глДобавитьРеквизит(ОрганизацияАдрес, ", ", глПредставлениеАдреса(Константа.АдресОрганизации)); глДобавитьРеквизит(ОрганизацияАдрес, ", тел. : ", Константа.ТелефоныОрганизации); Если РасчетныйСчет.Выбран() = 1 Тогда глДобавитьРеквизит(ОрганизацияАдрес, ", р/с ", СокрЛП(РасчетныйСчет.Номер) + " в " + РасчетныйСчет.БанкОрганизации); глДобавитьРеквизит(ОрганизацияАдрес, ", БИК ", СокрЛП(РасчетныйСчет.БанкОрганизации.Код)); гл |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |