|
Процедура или функция с указанным именем объявлена, но не определена в текущем м | ☑ | ||
---|---|---|---|---|
0
Z-bob
23.05.13
✎
09:57
|
Здравствуйте, помогите с отчетом, отчет работал, там есть запрос "Документ.СчетФактураПоставщика", я хотел в запрос добавить "Документ.СчетФактура" и выходит ошибка Процедура или функция с указанным именем объявлена, но не определена в текущем модуле.
В чем ошибка? я просто в тот же запрос добавил и все, остальное ничего не менял, версия 1с 7.7 |
|||
1
Z-bob
23.05.13
✎
10:00
|
ТекстЗапроса = "//{{ЗАПРОС(СФ)
|Период с ДатаНачала по ДатаОкончания; |ОбрабатыватьДокументы Проведенные; |Обрабатывать НеПомеченныеНаУдаление; |ДокСФ = Документ.СчетФактураПоставщика.ТекущийДокумент; |Контрагент = Документ.СчетФактураПоставщика.Контрагент; |ДатаВыпискиСФ = Документ.СчетФактураПоставщика.СчетФактураДата; |Свидетельство = Документ.СчетФактураПоставщика.Контрагент.СвидетельствоПоНДС; |Организация = Документ.СчетФактураПоставщика.Организация; |Оборот = Документ.СчетФактураПоставщика.СуммаБезНалогов; |СтНДС = Документ.СчетФактураПоставщика.СтавкаНДС; |НДС = Документ.СчетФактураПоставщика.СуммаНДС; |Функция ОблагаемыйОборот = Сумма(Оборот) когда (СтНДС.Освобожденная = 0); |Функция ОбщийОборот = Сумма(Оборот); |Функция ОбщийНДС = Сумма(НДС); |Группировка ДокСФ; |"//}}ЗАПРОС ; запрос был таким |
|||
2
Z-bob
23.05.13
✎
10:00
|
ТекстЗапроса =
"//{{ЗАПРОС(СФ) |Период с ДатаНачала по ДатаОкончания; |Обрабатывать НеПомеченныеНаУдаление; |ДокСФ = Документ.СчетФактураПоставщика.ТекущийДокумент, Документ.СчетФактура.ТекущийДокумент; |ДатаВыпискиСФ = Документ.СчетФактураПоставщика.СчетФактураДата; |Свидетельство = Документ.СчетФактураПоставщика.Контрагент.СвидетельствоПоНДС; |Организация = Документ.СчетФактураПоставщика.Организация, Документ.СчетФактура.Организация; |Оборот = Документ.СчетФактураПоставщика.СуммаБезНалогов; |СтНДС = Документ.СчетФактураПоставщика.СтавкаНДС; |НДС = Документ.СчетФактураПоставщика.СуммаНДС; |Функция ОблагаемыйОборот = Сумма(Оборот) когда(СтНДС.Освобожденная = 0); |Функция ОбщийОборот = Сумма(Оборот); |Функция ОбщийНДС = Сумма(НДС); |Группировка ДокСФ; |"//}}ЗАПРОС ; теперь такой |
|||
3
1Сергей
23.05.13
✎
10:01
|
куда добавил-то?
|
|||
4
azernot
23.05.13
✎
10:01
|
Процедура ЗабабахатьКакуютоМуть() Далее - процедура объявлена
... ... Процедура ЗабабахатьКакуютоМуть() МутьЗабабахана = 1; КонецПроцедуры - процедура определена. Так вот, похоже у тебя есть первая часть в модуле, но нет второй.. А изменения в запросе тут непричём. |
|||
5
Z-bob
23.05.13
✎
10:02
|
Документ.СчетФактура.ТекущийДокумент и Документ.СчетФактура.Организация
добавил |
|||
6
Z-bob
23.05.13
✎
10:03
|
(4) щас попробую )))
|
|||
7
Ёпрст
23.05.13
✎
10:05
|
(0)
; не в том месте |
|||
8
azernot
23.05.13
✎
10:05
|
(6) Что попробуешь? %) Найти объявленную процедуру с ключом "Далее" и убедиться что ниже в тексте модуля её действительно нет?
|
|||
9
Z-bob
23.05.13
✎
10:06
|
Процедура или функция с указанным именем объявлена, но не определена в текущем модуле (ПредварительныйРасчет)
|
|||
10
azernot
23.05.13
✎
10:07
|
(9) Мда.. Не найдёшь. Давай весь текст модуля.
|
|||
11
Рэйв
23.05.13
✎
10:07
|
(9)если тебе она не нужна,то проще убрать объявление
Это там где Далее |
|||
12
Z-bob
23.05.13
✎
10:07
|
Перем ТЗСф;
Перем РННОрганизации, БИНОрганизации; Перем НазваниеОрганизации; Перем ГлБухгалтер, Исполнитель, Руководитель; Перем РегНомерСвидетельства; Перем ИмяОтчета, КварталОтчета; Перем СерияСвидетельства; Перем НомерСвидетельства; Перем ДатаСвидетельства; Перем КонтекстОсновнойФормы; Перем НомерРелизаПолный; Перем БухИтоги; Процедура ПредварительныйРасчет() Далее Функция ПолучитьПериод() Далее // ~~~ -> Процедуры, функции выгрузки данных в ХМЛ // **************************************************************************** // ** Возвращает квартал отчетов, исходя из имени папки, в которой // раcположен файл внешнего отчета Функция ПолучитьКварталОтчета() Путь = ""; ИмяФайла = ""; РасположениеФайла(Путь, ИмяФайла); Если Найти(Врег(Путь),Врег(КаталогИБ()+"ExtForms\")) = 0 Тогда Сообщить("В каталоге квартальных отчетов " + КаталогИБ()+"ExtForms\" + " отчет " + ИмяОтчета + ".ert не обнаружен...","!"); Возврат 0; КонецЕсли; Возврат (Сред(Путь,СтрДлина(КаталогИБ()+"ExtForms\")+1,6)); КонецФункции //ПолучитьКварталОтчета() // ** Добавить в шапку приложения _____________________________________________ // Функция ДобавитьЭлемент(Список, Значение, Представление, Очистить=0) Если (ТипЗначенияСтр(Список) <> "СписокЗначений") или (Очистить = 1) Тогда Список = СоздатьОбъект("СписокЗначений"); КонецЕсли; Список.ДобавитьЗначение(Значение, Представление); Возврат Список; КонецФункции // ** Получить имя формы в 18'символьном представлении ________________________ // Функция ИмяФормы(Имя) Возврат Лев(Имя+" ", 18); КонецФункции // ** - Сформировать данные приложения для передачи в основную // форму (заполнение строк, выгрузка в ХМЛ) // Процедура СформироватьДанныеПриложения(ПредставлениеПриложения) Перем СписокЭлементов, ВШапку; Если ПустоеЗначение(ТЗСф) = 1 Тогда Предупреждение("Выбрано 0 строк, выгрузка не может быть выполнена!"); Возврат; КонецЕсли; // Проверка РНН Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(ТЗСф,"ТабличнаяЧастьФормы"); Параметры.ДобавитьЗначение("РННПоставщика","ИмяКолонки"); глВыполнитьДействиеОтчета(Контекст,"ПроверитьКорректностьРНН", ИмяОтчета, КонтекстОсновнойФормы, Параметры, ПредставлениеПриложения); // Проверка номер счета-фактуры Параметры.ДобавитьЗначение("НомерСФ","ИмяКолонки"); Параметры.ДобавитьЗначение("Номер счета-фактуры","ПредставлениеКолонки"); глВыполнитьДействиеОтчета(Контекст,"ПроверитьКорректностьЧисловогоПоля", ИмяОтчета, КонтекстОсновнойФормы, Параметры, ПредставлениеПриложения); // * - Форма 300.08 ДобавитьЭлемент(ВШапку, РННОрганизации, "rnn", 1); ДобавитьЭлемент(ВШапку, БИНОрганизации, "iin", ); ДобавитьЭлемент(ВШапку,Число(Цел((ДатаМесяц(ДатаК) - 1) / 3) + 1), "period_quarter",); ДобавитьЭлемент(ВШапку, ДатаГод(ДатаК), "period_year",); ДобавитьЭлемент(ВШапку, ТЗСф.Итог("ОбщийОборот"), "form_300_08_n_h_1",); ДобавитьЭлемент(ВШапку, ТЗСф.Итог("ОбщийНДС"), "form_300_08_n_i_1",); ДобавитьЭлемент(ВШапку, ТЗСф.Итог("ЗачетНДС"), "form_300_08_n_j_1",); СписокЭлементов = СоздатьОбъект("СписокЗначений"); СписокЭлементов.ДобавитьЗначение(ВШапку, "ЭлементыШапки"); СписокЭлементов.ДобавитьЗначение(глВыполнитьДействиеОтчета(Контекст,"ПолучитьТабличнуюЧастьФормы",ИмяОтчета, ТЗСф, "СтатусПоставщика,РННПоставщика, БИНПоставщика,НомерСФ, ДатаСФ,ВидСФ1, ВидСФ2,ОбщийОборот, ОбщийНДС, ЗачетНДС", "form_300_08_n_b, form_300_08_n_c, form_300_08_n_d, form_300_08_n_e,form_300_08_n_f, form_300_08_n_g_01, form_300_08_n_g_02, form_300_08_n_h, form_300_08_n_i, form_300_08_n_j"), "ТабличнаяЧасть"); СписокЭлементов.ДобавитьЗначение("300", "ОсновнаяФорма"); глВыполнитьДействиеОтчета(Контекст,"СформироватьДанныеПриложения", "30008|" + КварталОтчета, КонтекстОсновнойФормы, СписокЭлементов, "Форма 300.08"); КонецПроцедуры // ~~~ -> Прочие вспомогательные процедуры, функции // ** Установить квартал, год декларации ______________________________________ // Процедура КварталГод() Если Переодичность.ТекущаяСтрока() > 0 Тогда Если СокрЛП(Переодичность.ПолучитьЗначение(Переодичность.ТекущаяСтрока())) = "Месяц" Тогда Месяц = Прав("0"+Строка(ДатаМесяц(ДатаК)), 2); Квартал = ""; ИначеЕсли СокрЛП(Переодичность.ПолучитьЗначение(Переодичность.ТекущаяСтрока())) = "Квартал" Тогда Квартал = Цел((ДатаМесяц(ДатаК) - 1) / 3) + 1; Месяц = ""; Иначе КонецЕсли; КонецЕсли; Год = ДатаГод(ДатаК); КонецПроцедуры // ** - Получаем периодичность, выбранную в отчете ____________________________ // Функция ПолучитьПериод() Возврат Переодичность.ПолучитьЗначение(Переодичность.ТекущаяСтрока()); КонецФункции // ** - Разбиваем номер свидетельства по НДС на номер, серию и дату ___________ // Функция РазобратьРегНомСвидетельства(Знач РегНом, Параметр) РегНом = СокрЛП(РегНом); ДлСтр = СтрДлина(РегНом); Серия = 0; НомПробела = 1; Пока ((Серия = 0) и (НомПробела <> 0)) Цикл НомПробела = Найти(РегНом," "); Серия = Число(Лев(РегНом,НомПробела-1)); РегНом = СокрЛП(Прав(РегНом,(ДлСтр - НомПробела))); ДлСтр = СтрДлина(РегНом); КонецЦикла; Номер = 0; НомПробела = 1; Пока ((Номер = 0) и (НомПробела <> 0)) Цикл НомПробела = Найти(РегНом," "); Номер = Число(Лев(РегНом,НомПробела-1)); РегНом = СокрЛП(Прав(РегНом,(ДлСтр - НомПробела))); ДлСтр = СтрДлина(РегНом); КонецЦикла; ДатаРег = ""; НомПробела = 1; Пока ((ДатаРег = "") и (НомПробела < (ДлСтр-9))) Цикл НомПробела = Найти(РегНом," "); РегНом = СокрЛП(Прав(РегНом,(ДлСтр - НомПробела))); ДатаРег = Строка(Дата(РегНом)); ДлСтр = СтрДлина(РегНом); КонецЦикла; Если Параметр = "Серия" тогда Возврат Формат(Серия, "Ч(0)5"); ИначеЕсли Параметр="Номер" тогда Возврат Формат(Номер,"Ч(0)7"); ИначеЕсли Параметр="Дата" тогда Возврат Формат(ДатаРег,"ДДДММГГГГ"); КонецЕсли; КонецФункции // **** Обновление итоговой строчки вверху // Процедура Обновить() //Итог сумме Таблица.Область("R18C115").Текст = ТЗСф.Итог("ОбщийОборот"); Таблица.Область("R18C131").Текст = ТЗСф.Итог("ОбщийНДС"); Таблица.Область("R18C146").Текст = ТЗСф.Итог("ЗачетНДС"); Таблица.Показать(); КонецПроцедуры //**** Обработка ячеек таблицы // Процедура ОбработкаЯчейкиТаблицы(Значение, ФлагОбработки, Таблица, Адрес) Кол = Число(Сред(Адрес,Найти(Адрес,"C")+1)); Стр = Число(Сред(Адрес,2,Найти(Адрес,"C") + 1)); СтрТЗ = Число(Таблица.Область(Стр,1).Текст) - 1; Если Кол = 7 тогда //обработка колонки "Статус поставщика" ВведЗнач = Значение; ВвестиСтроку(ВведЗнач,"Введите статус поставщика",1); ТЗСф.УстановитьЗначение(СтрТЗ,"СтатусПоставщика",СокрЛП(ВведЗнач)); Таблица.Область(Адрес).Текст = ВведЗнач; Таблица.Область(Адрес).Расшифровка(ВведЗнач); ИначеЕсли Кол = 63 тогда //обработка колонки "НомерСФ" ВведЗнач = Значение; ВвестиСтроку(ВведЗнач,"Введите номер счета-фактуры",20); ТЗСф.УстановитьЗначение(СтрТЗ,"НомерСФ",ВведЗнач); Таблица.Область(Адрес).Текст = ВведЗнач; Таблица.Область(Адрес).Расшифровка(ВведЗнач); ИначеЕсли Кол = 74 тогда //обработка колонки "Дата выписки счета-фактуры" ВведЗнач = Значение; ВвестиДату(ВведЗнач,"Введите дату выписки счета-фактуры",); ДатаСФ = ?(ПустоеЗначение(ВведЗнач) = 1, "",Формат(ВведЗнач, "Д ДДММГГГГ")); ТЗСф.УстановитьЗначение(СтрТЗ,"ДатаСФ",ДатаСФ); Таблица.Область(Адрес).Текст = ДатаСФ; Таблица.Область(Адрес).Расшифровка(ДатаСФ); ИначеЕсли Кол = 84 тогда //обработка колонки "ВидСФ" ВведЗнач = Значение; ВвестиСтроку(ВведЗнач,"Введите вид счета-фактуры",1); ТЗСф.УстановитьЗначение(СтрТЗ,"ВидСФ1",ВведЗнач); Таблица.Область(Адрес).Текст = ВведЗнач; Таблица.Область(Адрес).Расшифровка(ВведЗнач); ИначеЕсли Кол = 85 тогда //обработка колонки "ВидСФ" ВведЗнач = Значение; ВвестиСтроку(ВведЗнач,"Введите вид счета-фактуры",1); ТЗСф.УстановитьЗначение(СтрТЗ,"ВидСФ2",ВведЗнач); Таблица.Область(Адрес).Текст = ВведЗнач; Таблица.Область(Адрес).Расшифровка(ВведЗнач); ИначеЕсли Кол = 115 тогда //обработка колонки "Всего стоимость без НДС" ВведЗнач = Значение; ВвестиЧисло(ВведЗнач,"Введите всего стоимость без НДС",19,0); ТЗСф.УстановитьЗначение(СтрТЗ,"ОбщийОборот",ВведЗнач); Таблица.Область(Адрес).Текст = ВведЗнач; Таблица.Область(Адрес).Расшифровка(ВведЗнач); ИначеЕсли Кол = 131 тогда //обработка колонки "Сумма НДС" ВведЗнач = Значение; ВвестиЧисло(ВведЗнач,"Введите сумму НДС",19,0); ТЗСф.УстановитьЗначение(СтрТЗ,"ОбщийНДС",ВведЗнач); Таблица.Область(Адрес).Текст = ВведЗнач; Таблица.Область(Адрес).Расшифровка(ВведЗнач); ИначеЕсли Кол = 146 тогда //обработка колонки "Зачет НДС" ВведЗнач = Значение; ВвестиЧисло(ВведЗнач,"Введите сумму НДС к зачету",19,0); ТЗСф.УстановитьЗначение(СтрТЗ,"ЗачетНДС",ВведЗнач); Таблица.Область(Адрес).Текст = ВведЗнач; Таблица.Область(Адрес).Расшифровка(ВведЗнач); Иначе ФлагОбработки = 1; КонецЕсли; Обновить(); КонецПроцедуры // ~~~ -> Процедуры стандартной обработки отчетов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // **** Процедура печати отчета _______________________________________________ // Процедура Печать() глВыполнитьДействиеОтчета(Контекст, "Печать", ИмяОтчета,,,) КонецПроцедуры // ** - Процедура очистки данных отчета // Процедура Очистить() Таблица.Очистить(); Таблица.Показать(); КонецПроцедуры // **** Процедура форматирования области по выбранным ед. изм. и точности _____ // Процедура ФорматОбласти() глВыполнитьДействиеОтчета(Контекст, "Формат", ИмяОтчета,,,) КонецПроцедуры // ** - Процедура обработки события выбора разделителя учета // Процедура ПриВыбореРУ() Если Метаданные.РазделительУчета.Выбран() = 1 тогда СпрОрганизации = СоздатьОбъект("Справочник.Организации"); Если СпрОрганизации.Выбрать("Выберите организацию",) = 1 Тогда РазделительУчета = СпрОрганизации.ТекущийЭлемент(); КонецЕсли; КонецЕсли; АтрибутыОрганизации = ?(РазделительУчета.Выбран() = 1, РазделительУчета, глОрганизация()); НазваниеОрганизации = АтрибутыОрганизации.ПолноеНаименование; АдресОрганизации = АтрибутыОрганизации.ЮридическийАдрес; РННОрганизации = АтрибутыОрганизации.РНН; БИНОрганизации = АтрибутыОрганизации.БИН; //БИНОрганизации = глВыполнитьДействиеОтчета(Контекст, "ПолучитьБИН", ИмяОтчета, АтрибутыОрганизации,,); ГлБухгалтер = ФИО(АтрибутыОрганизации.ГлавныйБухгалтер.Получить(ДатаК)); Исполнитель = ФИО(АтрибутыОрганизации.Исполнитель.Получить(ДатаК)); Руководитель = ФИО(АтрибутыОрганизации.Руководитель.Получить(ДатаК)); КонецПроцедуры Процедура ПриВыбореРежимаФормирования() Если ПризнакПериода = 3 Тогда Форма.ДатаРегистрации.Доступность(1); Иначе Форма.ДатаРегистрации.Доступность(0); КонецЕсли; КонецПроцедуры // ~~~ -> Предопределенные процедуры (ПриОткрытии()...) // ** При Открытии отчета _____________________________________________________ // Процедура ПриОткрытии() ИмяОтчета = "30008"; КварталОтчета = ПолучитьКварталОтчета(); Если КварталОтчета = 0 Тогда СтатусВозврата(0); Возврат; КонецЕсли; ИмяОтчета = ИмяОтчета + "|"+КварталОтчета; ДатаПринятия = РабочаяДата(); Основной = 1; глВыполнитьДействиеОтчета(Контекст, "ИнициализироватьДиалог", ИмяОтчета, "Квартал, Месяц|в тг., 0|", 0, 0); НомерРелизаПолный = глВыполнитьДействиеОтчета(Контекст,"ПолучитьНомерРелизаКонфигурации", ИмяОтчета, 1,,); БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги"); Если ПустоеЗначение(Форма.Параметр) = 0 Тогда КонтекстОсновнойФормы = Форма.Параметр; РазделительУчета = КонтекстОсновнойФормы.РазделительУчета; ДатаН = КонтекстОсновнойФормы.ДатаН; ДатаК = КонтекстОсновнойФормы.ДатаК; Переодичность.ТекущаяСтрока(КонтекстОсновнойФормы.Переодичность.ТекущаяСтрока()); ПериодОтчета = КонтекстОсновнойФормы.ПериодОтчета; КонецЕсли; ПризнакПлательщиков = ВосстановитьЗначение("300ПризнакПлательщиков"); ПризнакПериода = ВосстановитьЗначение("300ПризнакПериода"); Если ПризнакПериода = 0 Тогда ПризнакПериода = 1; КонецЕсли; ПриВыбореРежимаФормирования(); КоличествоСтрок = 10; АтрибутыОрганизации = ?(РазделительУчета.Выбран() = 1, РазделительУчета, глОрганизация()); НазваниеОрганизации = АтрибутыОрганизации.ПолноеНаименование; РННОрганизации = АтрибутыОрганизации.РНН; БИНОрганизации = АтрибутыОрганизации.БИН; //БИНОрганизации = глВыполнитьДействиеОтчета(Контекст, "ПолучитьБИН", ИмяОтчета, АтрибутыОрганизации,,); ГлБухгалтер = ФИО(АтрибутыОрганизации.ГлавныйБухгалтер.Получить(ДатаК)); Исполнитель = ФИО(АтрибутыОрганизации.Исполнитель.Получить(ДатаК)); Руководитель = ФИО(АтрибутыОрганизации.Руководитель.Получить(ДатаК)); Таблица.ИсходнаяТаблица("Таблица"); Таблица.Опции(0, 0); Таблица.Показать(); КонецПроцедуры // ** При закрытии отчета _____________________________________________________ // Процедура ПриЗакрытии() СохранитьЗначение("300ПризнакПлательщиков",ПризнакПлательщиков); СохранитьЗначение("300ПризнакПериода", ПризнакПериода); КонецПроцедуры // ~~~ -> Расчеты декларации, приложения // **** Процедура предварительного расчёта данных по декларации // Процедура СФ() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(СФ) |Период с ДатаНачала по ДатаОкончания; |Обрабатывать НеПомеченныеНаУдаление; |ДокСФ = Документ.СчетФактураПоставщика.ТекущийДокумент, Документ.СчетФактура.ТекущийДокумент; |ДатаВыпискиСФ = Документ.СчетФактураПоставщика.СчетФактураДата; |Свидетельство = Документ.СчетФактураПоставщика.Контрагент.СвидетельствоПоНДС; |Организация = Документ.СчетФактураПоставщика.Организация, Документ.СчетФактура.Организация; |Оборот = Документ.СчетФактураПоставщика.СуммаБезНалогов; |СтНДС = Документ.СчетФактураПоставщика.СтавкаНДС; |НДС = Документ.СчетФактураПоставщика.СуммаНДС; |Функция ОблагаемыйОборот = Сумма(Оборот) когда(СтНДС.Освобожденная = 0); |Функция ОбщийОборот = Сумма(Оборот); |Функция ОбщийНДС = Сумма(НДС); |Группировка ДокСФ; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; СФ = 1; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("СФ"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей ДокСФ Таб.ВывестиСекцию("ДокСФ"); КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("СФ", ""); КонецПроцедуры ///////////////////////////////////////////////////////////////////////////// // Блок процедур для экспорта в Excel ///////////////////////////////////////////////////////////////////////////// Процедура Экспорт_СформироватьРеестр() // выводим данные в отдельный макет // более приемлимый для экспорта ТаблицаРеестра = СоздатьОбъект("Таблица"); ТаблицаРеестра.ИсходнаяТаблица("РеестрСчетовФактур"); ТаблицаРеестра.ВывестиСекцию("Шапка"); Стр = 1; ТЗСф.ВыбратьСтроки(); Пока ТЗСф.ПолучитьСтроку() = 1 Цикл Стр = Стр + 1; ТаблицаРеестра.ВывестиСекцию("Строка"); КонецЦикла; ТаблицаРеестра.ВывестиСекцию("Итог"); ТаблицаРеестра.ВывестиСекцию("Подписи"); ТаблицаРеестра.ПараметрыСтраницы(2,90); ТаблицаРеестра.Опции(0,0,0,0); ТаблицаРеестра.Показать("Реестр счетов-фактур (форма 300.08)"); КонецПроцедуры // * - Выбрать файл выгрузки данных // Функция ВыбратьФайлШаблона(Файл, Расширение = "xlt") Перем ПутьФайла; МаскаФайла = "Шаблоны Excel (*." +СокрЛП(Расширение) + ") |*." + СокрЛП(Расширение); Каталог = ВосстановитьЗначение("300КаталогШаблоновExcel"); Если ФС.ВыбратьФайл(0, Файл, Каталог, "Выберите Xls-файл шаблона приложения", МаскаФайла + "|Все файлы (*.*) |*.*") = 1 Тогда ПутьФайла = Каталог + Файл; СохранитьЗначение("300КаталогШаблоновExcel", Каталог); КонецЕсли; Возврат ПутьФайла; КонецФункции Процедура Экспорт_ВыгрузитьВШаблонExcel(ИмяЛиста, НомерНачальнойСтрокиExcel, СтруктураСоответствияПолей) ПутьКШаблону = ВыбратьФайлШаблона("SONO_300_08", "xls"); Если ФС.СуществуетФайл(ПутьКШаблону) = 0 Тогда Предупреждение("В указанном каталоге не найден xlt-файл шаблона. Проверьте наличие файла шаблона в указанном каталоге."); Возврат; КонецЕсли; Попытка ОбъектExcel = Создатьобъект("Excel.Application"); Исключение Предупреждение("Не удалось подключиться к Excel!"); Возврат; КонецПопытки; Попытка НоваяКнига = ОбъектExcel.Workbooks.Add(ПутьКШаблону); Исключение Предупреждение("Не удалось создать новую книгу Excel!"); Возврат; КонецПопытки; // переходим на лист для заполнения данных РабочийЛистКниги = НоваяКнига.Sheets.Item(ИмяЛиста); НомерТекущейСтроки = НомерНачальнойСтрокиExcel; КоличествоСтрок = ТзСФ.КоличествоСтрок(); Стр = 1; ТЗСф.ВыбратьСтроки(); Пока ТЗСф.ПолучитьСтроку() = 1 Цикл Стр = Стр + 1; Состояние("Выгружается строка " + Стр + " из " + КоличествоСтрок); // выгрузим номер строки РабочийЛистКниги.Cells(НомерТекущейСтроки,1).NumberFormat = "@"; РабочийЛистКниги.Cells(НомерТекущейСтроки,1).Value = Формат(НомерТекущейСтроки, "Ч(0)8"); Для СчетчикЦикла = 1 ПО СтруктураСоответствияПолей.РазмерСписка() Цикл ИмяКолонкиТЗ = ""; ИндексКолонкиExcel = СтруктураСоответствияПолей.ПолучитьЗначение(СчетчикЦикла,ИмяКолонкиТЗ); ЗначениеЯчейки = ТЗСф.ПолучитьЗначение(ТЗСф.НомерСтроки, ИмяКолонкиТЗ); Если ПустоеЗначение(ЗначениеЯчейки) = 1 Тогда Продолжить; КонецЕсли; // форматируем Если ИмяКолонкиТЗ = "БИНПоставщика" Тогда РабочийЛистКниги.Cells(НомерТекущейСтроки,ИндексКолонкиExcel).NumberFormat = "@"; ИначеЕсли (ИмяКолонкиТЗ = "ОбщийОборот") ИЛИ (ИмяКолонкиТЗ = "ОбщийНДС") ИЛИ (ИмяКолонкиТЗ = "ЗачетНДС") Тогда РабочийЛистКниги.Cells(НомерТекущейСтроки,ИндексКолонкиExcel).NumberFormat = "0"; КонецЕсли; // выгружаем Если ИмяКолонкиТЗ = "ДатаСФ" Тогда Значение = ТЗСф.ПолучитьЗначение(ТЗСф.НомерСтроки, ИмяКолонкиТЗ); Если ПустоеЗначение(Значение) = 0 Тогда РабочийЛистКниги.Cells(НомерТекущейСтроки,ИндексКолонкиExcel).Value = Дата(ЗначениеЯчейки); КонецЕсли; Иначе РабочийЛистКниги.Cells(НомерТекущейСтроки,ИндексКолонкиExcel).Value = СокрЛП(ЗначениеЯчейки); КонецЕсли; КонецЦикла; НомерТекущейСтроки = НомерТекущейСтроки + 1; КонецЦикла; Предупреждение("Формирование книги Excel завершено!"); ОбъектExcel.Visible = "True"; ОбъектExcel = ""; КонецПроцедуры /////////////////////////////////////////////////////// // Экспорт файла в шаблон Процедура ЭкспортВExcel() Если ПустоеЗначение(ТзСФ) = 1 Тогда Сообщить("Для экспорта данных необходимо сначала выполнить заполнение отчета","!"); Возврат; КонецЕсли; ПунктМеню = ""; Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("СформироватьРеестр", "Сформировать регистр налогового учета"); Меню.ДобавитьЗначение("ВыгрузитьВExcel", "Выгрузить в шаблон Excel"); Если Меню.ВыбратьЗначение(ПунктМеню,,,,1) = 0 Тогда Возврат; КонецЕсли; Если ПунктМеню = "СформироватьРеестр" Тогда Экспорт_СформироватьРеестр() ИначеЕсли ПунктМеню = "ВыгрузитьВExcel" Тогда СтруктураСоответствияПолей = СоздатьОбъект("СписокЗначений"); СтруктураСоответствияПолей.ДобавитьЗначение(2, "СтатусПоставщика"); СтруктураСоответствияПолей.ДобавитьЗначение(3, "РННПоставщика"); СтруктураСоответствияПолей.ДобавитьЗначение(4, "БИНПоставщика"); СтруктураСоответствияПолей.ДобавитьЗначение(5, "НомерСФ"); СтруктураСоответствияПолей.ДобавитьЗначение(6, "ДатаСФ"); СтруктураСоответствияПолей.ДобавитьЗначение(7, "ВидСФ1"); СтруктураСоответствияПолей.ДобавитьЗначение(8, "ВидСФ2"); СтруктураСоответствияПолей.ДобавитьЗначение(9, "ОбщийОборот"); СтруктураСоответствияПолей.ДобавитьЗначение(10, "ОбщийНДС"); СтруктураСоответствияПолей.ДобавитьЗначение(11, "ЗачетНДС"); Экспорт_ВыгрузитьВШаблонExcel("300.08.Data1", 2, СтруктураСоответствияПолей); КонецЕсли; КонецПроцедуры |
|||
13
Ёпрст
23.05.13
✎
10:07
|
(9) да блин, либо подыми её выше, либо используй конструкцию Далее в описании функции
|
|||
14
Z-bob
23.05.13
✎
10:08
|
ошибка "Процедура или функция с указанным именем объявлена, но не определена в текущем модуле (ПредварительныйРасчет)"
|
|||
15
Ёпрст
23.05.13
✎
10:09
|
(12) убери строчку
Процедура ПредварительныйРасчет() Далее или закомменти её |
|||
16
azernot
23.05.13
✎
10:09
|
(14) удали строку
Процедура ПредварительныйРасчет() Далее |
|||
17
Z-bob
23.05.13
✎
10:10
|
ок, щас
|
|||
18
azernot
23.05.13
✎
10:13
|
(17) И не обманывай больше взрослых дяденек. "остальное ничего не менял".. быстро раскусим. :)
|
|||
19
Z-bob
23.05.13
✎
10:14
|
просто с отчета 300 вытикает отчет 300.08, теперь 300 отчет открывается и когда открываешь 300.08 ошибка "Процедура ПредварительныйРасчет() не найдена"
|
|||
20
Z-bob
23.05.13
✎
10:14
|
так что Процедура ПредварительныйРасчет() по любому нужен
|
|||
21
Z-bob
23.05.13
✎
10:17
|
(18) я действительно ничего не менял))) просто запрос поменял и все, а весь код так и стоит, если запрос оставляю как есть то отчет работает...
|
|||
22
Z-bob
23.05.13
✎
10:17
|
но мне надо чтобы при сформировании отчета он и еще брал данные с СчетФактура
|
|||
23
Ёпрст
23.05.13
✎
10:18
|
(20) А зачем ты её удалил из кода ?
|
|||
24
Z-bob
23.05.13
✎
10:19
|
(20) что удалил? я наоборот в запрос добавил СчетФактура
|
|||
25
azernot
23.05.13
✎
10:20
|
(24) Либо это не работало и до тебя, либо ты нам мозги компостируешь.
|
|||
26
Z-bob
23.05.13
✎
10:23
|
(25)все работало, если я убираю свои изменения в запросе, то оба отчета работают...
|
|||
27
Z-bob
23.05.13
✎
10:30
|
ну, взрослые дядьки, подскажите, или есть другой вариант сформирования отчета?
|
|||
28
Рэйв
23.05.13
✎
10:32
|
(27)Придется тебе писать
//------ Процедура ПредварительныйРасчет() // тут будет твой код КонецПроцедуры |
|||
29
ZADR
23.05.13
✎
10:32
|
или забей)))
|
|||
30
azernot
23.05.13
✎
10:34
|
В конфигураторе есть в меню файл пункт "Справнить файлы". Сравни отчёты до и после своих исправлений.
Код из (12), если он полный, работать не может. И это не зависит от текста запроса в процедуре СФ(). |
|||
31
Z-bob
23.05.13
✎
10:51
|
а есть другие варианты сформировать отчет? ну чтобы с Документ.СчетФактура брал данные? без изменения запроса?
|
|||
32
azernot
23.05.13
✎
10:53
|
(31) Есть. Разбежаться и хорошенько долбануть головой об стену. В голове появится нужный отчёт, нужной формы, с нужными данными. Главное успеть всё хорошенько запомнить. Но, если не запомнил - не беда. Процедуру можно повторить.
|
|||
33
Z-bob
23.05.13
✎
10:54
|
(32) ))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |