|
v7: нужна помощь с кодом 🠗 (Волшебник 16.09.2015 10:11) | ☑ | ||
---|---|---|---|---|
0
AlaMaRit
16.09.15
✎
09:47
|
Процедура НеОплаченныеНакладные();
... // Отчет по неоплаченным накладным... КонецПроцедуры Процедура ПриОткрытии(); НеОплаченныеНакладные() КонецПроцедуры выдает ошибку <<?>>Процедура НеОплаченныеНакладные(); {Отчет.Взаиморасчеты.Форма.Модуль(385)}: Определения процедур и функций должны размещаться перед операторами основной программы вопрос где ошибка? |
|||
1
Zhuri
16.09.15
✎
09:49
|
Процедура НеОплаченныеНакладные();
убери ";" |
|||
2
HawkEye
16.09.15
✎
09:50
|
(0) ";" - убери после названия процедур
|
|||
3
itlikbez
16.09.15
✎
09:52
|
(0) Ошибка где-то выше строки 385. Ищи лишние ";"
|
|||
4
itlikbez
16.09.15
✎
09:53
|
(1) (2) Зачем? Смотрится неплохо. Мне лично нравится.
|
|||
5
HawkEye
16.09.15
✎
10:09
|
(4) и то верно, хотя мне и не нравится....
(0) убери ";" ПЕРЕД "Процедура НеОплаченныеНакладные()" |
|||
6
AlaMaRit
16.09.15
✎
10:46
|
(5) убрал, ошибка осталась
|
|||
7
xaozai
16.09.15
✎
10:48
|
Процедура НеОплаченныеНакладные();
Процедура ПриОткрытии(); Нафик здесь ; ? |
|||
8
itlikbez
16.09.15
✎
10:49
|
(7) Для красоты. Не трожь!
|
|||
9
itlikbez
16.09.15
✎
10:49
|
(6) Убери все.
|
|||
10
AlaMaRit
16.09.15
✎
10:50
|
все убрал не работает
|
|||
11
xaozai
16.09.15
✎
10:52
|
(8) Для красоты сисек не хватает.
?•_?_•? |
|||
12
xaozai
16.09.15
✎
10:52
|
эх
|
|||
13
itlikbez
16.09.15
✎
10:52
|
(10) Ошибка та же?
|
|||
14
AlaMaRit
16.09.15
✎
11:10
|
(13) да
|
|||
15
HawkEye
16.09.15
✎
11:21
|
(0) чего гадать то, давай сюда весь код.
|
|||
16
AlaMaRit
16.09.15
✎
11:23
|
(15)
//******************************************* процедура выбДаты(Реж) если Реж = 0 тогда если ДатаС > ПолучитьДатуТА() тогда ДатаС = ПолучитьДатуТА(); Предупреждение("Нельзя выбирать дату начала периода больше ТА", 30); иначеЕсли ДатаС > ДатаПо тогда ДатаС = ДатаПо; Предупреждение("Нельзя выбирать дату начала периода больше даты конца", 30); конецЕсли; иначе если ДатаПо < ДатаС тогда ДатаПо = ДатаС; Предупреждение("Некорректный интервал дат", 30); конецЕсли; конецЕсли; конецПроцедуры //******************************************* Процедура Сформировать() перем Реж; Спис = СоздатьОбъект("СписокЗначений"); Спис.ДобавитьЗначение(0,"Итоги"); Спис.ДобавитьЗначение(1,"Кратко"); Спис.ДобавитьЗначение(2,"Подробно"); Спис.ДобавитьЗначение(3,"Неоплаченные документы"); если Спис.ВыбратьЗначение(Реж,"Режим печати",,,1) = 0 тогда возврат; конецЕсли; Спис = 0; Если реж=3 Тогда//Неоплаченные документы Состояние("Выполняется обработка. Ждите..."); Таб = СоздатьОбъект("Таблица"); Заг=1; Если ПустаяСтрока(выбПост)<>1 Тогда Заг="По "+ВыбПост; КонецЕсли; Заг1=""; Таб.ИсходнаяТаблица("Таблица1"); Таб.ВывестиСекцию("Шапка"); Рег=создатьОбъект("Регистр.Взаиморасчеты"); Рег1=создатьОбъект("Регистр.Партии"); сумДолг4=0; СумНадо4=0; Табл = СоздатьОбъект("ТаблицаЗначений"); б=1; Табл.НоваяКолонка(); Табл.НоваяКолонка(); Табл.НоваяКолонка(); Табл.НоваяКолонка(); Табл.НоваяКолонка(); Таб1 = СоздатьОбъект("ТаблицаЗначений"); Сп = СоздатьОбъект("СписокЗначений"); Таб1.НоваяКолонка(); Таб1.НоваяКолонка(); Таб1.НоваяКолонка(); Таб1.НоваяКолонка(); СпрФ=СоздатьОбъект("Справочник.ФирмыК"); ин=1; Док=СоздатьОБъект("Документ"); Док.ОбратныйПорядок(1); Если ВыбПост.Выбран()=1 Тогда Док.ВыбратьПоЗначению(Дата(2004,9,1),ДатаПо,"Поставщик",ВыбПост); Иначе Док.ВыбратьДокументы(Дата(2004,9,1),ДатаПо); КонецЕсли; Пока (Док.ПолучитьДокумент()>0) Цикл Если Док.проведен()=0 Тогда Продолжить; КонецЕсли; Если (Док.Вид()="ПрихНакладная") Тогда Если выбФир.Выбран()=1 Тогда Если (Док.Фирма=ВыбФир) Тогда Иначе Продолжить; КонецЕсли; КонецЕсли; Стр=""; Если сп.НайтиЗначение(Док.Поставщик)<>0 тогда КонецЕсли; Если Таб1.НайтиЗначение(Док.Поставщик,Стр,1)=0 Тогда Если ПустоеЗначение(выбфир)=1 Тогда СумДолг=Рег.СводныйОстаток(Док.Поставщик,,,"Сумма"); Иначе СумДолг=Рег.СводныйОстаток(Док.Поставщик,,ВыбФир,"Сумма"); КонецЕсли; СпрФ.ИспользоватьВладельца(Док.Поставщик); СпрФ.ИспользоватьДату(ДатаПо); Если СПРФ.НайтиПоРеквизиту("Фирма",Константа.ОснФирма,0)<>0 Тогда Срок=СпрФ.Дни; ВидР=СпрФ.ПоУмолчанию; КонецЕсли; СумДолг1=0; Если видР=0 Тогда Ост=Рег1.СводныйОстаток(,,ВыбФир,Док.Поставщик,"Себестоимость"); СумДолг1=СумДолг-Ост; КонецЕсли; Сп.ДобавитьЗначение(Док.Поставщик); Если СумДолг>0 Тогда Таб1.НоваяСтрока(); Стр=Таб1.КоличествоСтрок(); Таб1.УстановитьЗначение(стр,1,Док.Поставщик); Таб1.УстановитьЗначение(стр,2,СумДолг); Таб1.УстановитьЗначение(стр,3,СумДолг1); Таб1.УстановитьЗначение(стр,4,ВидР); Иначе Сп.ДобавитьЗначение(Док.Поставщик); Продолжить; Конецесли; КонецЕсли; СумДолг=Таб1.ПолучитьЗначение(стр,2); Если сумДолг<=0 Тогда Продолжить; КонецЕсли; Докум=Док.ТекущийДокумент(); ПрихДолг=Док.Итог("Сумма"); Если ПрихДолг<=СумДолг Тогда Долг=ПрихДолг; СумДолг=СумДолг-ПрихДолг; Иначе Долг=СумДолг; СумДолг=0; КонецЕсли; Таб1.УстановитьЗначение(стр,2,СумДолг); Табл.НоваяСтрока(); Табл.УстановитьЗначение(ин,1,Докум.ДатаДок); Табл.УстановитьЗначение(ин,2,Докум); Табл.УстановитьЗначение(ин,3,ПрихДолг); Табл.УстановитьЗначение(ин,4,Долг); Табл.УстановитьЗначение(ин,5,Докум.Поставщик); ин=ин+1; КонецЕсли; КонецЦикла; СумНадо=0; б=1; СумДолг2=0;СумНадо=0; Табл.Сортировать("5,1"); Если Табл.КоличествоСтрок()=0 Тогда Предупреждение("Неоплаченных документов нет!"); Возврат; КонецЕсли; Пс=Табл.ПолучитьЗначение(1,5); Таб.ВывестиСекцию("Контрагент"); Стр=""; СумДолг1=0;ВидР=1; Если таб1.НайтиЗначение(Пс,Стр,1)<>0 Тогда Если таб1.ПолучитьЗначение(Стр,4)=0 Тогда ВидР= таб1.ПолучитьЗначение(Стр,4); СумДолг1=таб1.ПолучитьЗначение(Стр,3); КонецЕсли; КонецЕсли; Для ин=1 По Табл.КоличествоСтрок() Цикл Если Пс<>Табл.ПолучитьЗначение(ин,5) Тогда Таб.ВывестиСекцию("Итог"); СумДолг4=СумДолг4+СумДолг2; СумНадо4=СумНадо4+СумНадо; Пс=Табл.ПолучитьЗначение(ин,5); Таб.ВывестиСекцию("Контрагент"); Стр=""; СумДолг1=0;ВидР=1; Если таб1.НайтиЗначение(Пс,Стр,1)<>0 Тогда Если таб1.ПолучитьЗначение(Стр,4)=0 Тогда СумДолг1=таб1.ПолучитьЗначение(Стр,3); ВидР= таб1.ПолучитьЗначение(Стр,4); КонецЕсли; КонецЕсли; СумДолг2=0; СумНадо=0; б=0; КонецЕсли; Докум=Табл.ПолучитьЗначение(ин,2); ПрихДолг=Табл.ПолучитьЗначение(ин,3); Долг=Табл.ПолучитьЗначение(ин,4); СумДолг2=СумДолг2+Долг; КонецЦикла; Таб.ВывестиСекцию("Итог"); СумДолг4=СумДолг4+СумДолг2; СумНадо4=СумНадо4+СумНадо; Если СумНадо4<>СумНадо Тогда Таб.ВывестиСекцию("Всего"); КонецЕсли; ОчиститьОкноСообщений(); Таб.Опции(0,0,5,0,0); Таб.ТолькоПросмотр(1); Таб.Показать("Взаиморасчеты",""); Возврат; КонецЕсли; ТекстЗапроса = "Период с ДатаС"; если ДатаПо >= ПолучитьДатуТА() тогда ТекстЗапроса = ТекстЗапроса + ";"; иначе ТекстЗапроса = ТекстЗапроса + " по ДатаПо;"; конецЕсли; ТекстЗапроса = ТекстЗапроса + "//{{ЗАПРОС(хочу) |Контрагент = Регистр.Взаиморасчеты.Контрагент; |ВидЗакупки = Регистр.Взаиморасчеты.ВидЗакупки; |Фирма = Регистр.Взаиморасчеты.Фирма; |Сум = Регистр.Взаиморасчеты.Сумма; |Докум = Регистр.Взаиморасчеты.ТекущийДокумент; |Проект = Регистр.Взаиморасчеты.ТекущийДокумент.Проект; |Функция Сумма = КонОст(Сум); |Функция НачДолг = НачОст(Сум); |Функция ПрихДолг = Приход(Сум); |Функция РасхДолг = Расход(Сум); |"//}}ЗАПРОС ; Если Проект = 1 тогда ТекстЗапроса = ТекстЗапроса + "Группировка Проект; |Группировка Контрагент " + ?(БезГрупп = 1, "Без Групп", "") + " упорядочить по " + ?(Упорядочить = 1, "Контрагент.Наименование", "Сумма") + ";";//Контрагент.Наименование;";// Иначе ТекстЗапроса = ТекстЗапроса + "Группировка Контрагент " + ?(БезГрупп = 1, "Без Групп", "") + " упорядочить по " + ?(Упорядочить = 1, "Контрагент.Наименование", "Сумма") + ";";//Контрагент.Наименование;"; конецЕсли; Итог=0; если Реж = 2 тогда ТекстЗапроса = ТекстЗапроса + "Группировка Докум упорядочить по Докум.ДатаДок;"; конецЕсли; если выбПост.Выбран()=1 тогда если выбПост.ЭтоГруппа()=1 тогда ТекстЗапроса = ТекстЗапроса + "Условие (Контрагент.ПринадлежитГруппе(выбПост)=1);"; Заг = "По контрагентам группы "+выбПост.Наименование; иначе ТекстЗапроса = ТекстЗапроса + "Условие (Контрагент = выбПост);"; Заг = "По контрагенту " + выбПост.Наименование; конецЕсли; иначе Заг = "По всем конрагентам"; конецЕсли; если выбВид.Выбран() = 1 тогда Заг1 = Заг1 + ", По "+строка(выбВид); ТекстЗапроса = ТекстЗапроса + "Условие (ВидЗакупки = выбВид);"; иначе Заг1 = Заг1 + ", По всем взаиморасчетам"; конецЕсли; если выбФир.Выбран() = 1 тогда Заг1 = Заг1 + ", По "+строка(выбФир); ТекстЗапроса = ТекстЗапроса + "Условие (Фирма = выбФир);"; иначе Заг1 = Заг1 + ", По всем фирмам"; конецЕсли; если ВыбПроект.Выбран() = 1 тогда Заг1 = Заг1 + ", По проекту: "+строка(ВыбПроект); ТекстЗапроса = ТекстЗапроса + "Условие (Проект = ВыбПроект);"; иначе Заг1 = Заг1 + ", По всем проектам"; конецЕсли; Запрос = СоздатьОбъект("Запрос"); Запрос.ВключитьSQL(1); если Запрос.Выполнить(ТекстЗапроса) = 0 тогда возврат; конецЕсли; Таб = СоздатьОбъект("Таблица"); если Реж = 0 тогда Таб.ИсходнаяТаблица("Итоги"); конецЕсли; Таб.ВывестиСекцию("Шапка"); НачДолг=0; ПрихДолг=0; РасхДолг=0; КонДолг=0; Прих1=0; Расх1=0; Если Проект = 1 Тогда пока Запрос.Группировка("Проект") = 1 цикл Таб.ВывестиСекцию("Проект"); пока Запрос.Группировка("Контрагент") = 1 цикл Если (НашДолг = 0) И (Запрос.Сумма > 0) Тогда Продолжить КонецЕсли;//НашДолг = 1 Если (Нулевые = 0) И (Запрос.Сумма = 0) Тогда Продолжить КонецЕсли;//Нулевые = 1 Если (ДолгКонтрагента = 0) И (Запрос.Сумма < 0) Тогда Продолжить КонецЕсли;//ДолгКонтрагента = 1 если Запрос.Контрагент.ЭтоГруппа()=1 тогда Таб.ВывестиСекцию("Группа"); иначе Таб.ВывестиСекцию("Контрагент"); НачДолг=НачДолг+Запрос.НачДолг; ПрихДолг=ПрихДолг+Запрос.ПрихДолг; РасхДолг=РасхДолг+Запрос.РасхДолг; КонДолг=КонДолг+Запрос.Сумма; конецЕсли; Итог=Итог+Запрос.Сумма; если Реж = 2 тогда Сум1 = Запрос.НачДолг; Пока Запрос.Группировка("Докум")=1 цикл если Запрос.Докум.Выбран()=1 тогда Прих1=Прих1+Запрос.ПрихДолг; Расх1=Расх1+Запрос.РасхДолг; Сум1=Сум1+Запрос.ПрихДолг-Запрос.РасхДолг; Таб.ВывестиСекцию("Докум"); конецЕсли; КонецЦикла; конецЕсли; конецЦикла; конецЦикла; Иначе пока Запрос.Группировка("Контрагент") = 1 цикл Если (НашДолг = 0) И (Запрос.Сумма > 0) Тогда Продолжить КонецЕсли;//НашДолг = 1 Если (Нулевые = 0) И (Запрос.Сумма = 0) Тогда Продолжить КонецЕсли;//Нулевые = 1 Если (ДолгКонтрагента = 0) И (Запрос.Сумма < 0) Тогда Продолжить КонецЕсли;//ДолгКонтрагента = 1 если Запрос.Контрагент.ЭтоГруппа()=1 тогда Таб.ВывестиСекцию("Группа"); иначе Таб.ВывестиСекцию("Контрагент"); НачДолг=НачДолг+Запрос.НачДолг; ПрихДолг=ПрихДолг+Запрос.ПрихДолг; РасхДолг=РасхДолг+Запрос.РасхДолг; КонДолг=КонДолг+Запрос.Сумма; конецЕсли; Итог=Итог+Запрос.Сумма; если Реж = 2 тогда Сум1 = Запрос.НачДолг; Пока Запрос.Группировка("Докум")=1 цикл если Запрос.Докум.Выбран()=1 тогда Прих1=Прих1+Запрос.ПрихДолг; Расх1=Расх1+Запрос.РасхДолг; Сум1=Сум1+Запрос.ПрихДолг-Запрос.РасхДолг; Таб.ВывестиСекцию("Докум"); конецЕсли; КонецЦикла; конецЕсли; конецЦикла; КонецЕсли;//Проект = 1 Таб.ВывестиСекцию("Подвал"); Таб.Опции(0,0,5,0,0); Таб.ТолькоПросмотр(1); Таб.Показать("Взаиморасчеты",""); КонецПроцедуры ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата())); ДатаПо = РабочаяДата() //******************************************* Процедура НеОплаченныеНакладные() ... // Отчет по неоплаченным накладным... КонецПроцедуры Процедура ПриОткрытии() НеОплаченныеНакладные(); КонецПроцедуры держи |
|||
17
itlikbez
16.09.15
✎
11:26
|
ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
ДатаПо = РабочаяДата() поставь в самый конец |
|||
18
AlaMaRit
16.09.15
✎
11:45
|
(17) дабавил, вот ошибка
<<?>>Процедура НеОплаченныеНакладные() {Отчет.Взаиморасчеты.Форма.Модуль(386)}: Определения процедур и функций должны размещаться перед операторами основной программы |
|||
19
AlaMaRit
16.09.15
✎
11:52
|
Людии почему мне показывает <<?>> перед Процедура НеОплаченныеНакладные(), там что то должно стоять? или что, у мня щас голова лопнет
|
|||
20
AlaMaRit
16.09.15
✎
12:05
|
(17) ошибка осталась, куда копать?
|
|||
21
NikVars
16.09.15
✎
12:28
|
(20) Начни с самого начала.
Ты что делаешь вообще?! Отчет, документ, справочник. Соориентируй сообщество, а то по вопросам ты можешь писать код в самых неожиданных местах. Далее интересен ВЕСЬ код, а не место ошибки. На вопрос "куда копать" отвечу - начинай копать с того момента, который начал изменять и далее по цепочке своих действий. |
|||
22
AlaMaRit
16.09.15
✎
12:30
|
(21) весь я код я выкладывал в (16)сообщении, а делаю я отчет, контрагенты, взаиморасчеты
|
|||
23
itlikbez
16.09.15
✎
12:37
|
(18) А оттуда, откуда поставил убери.
В промежутках между КонеПроцедуры и Процедура не должно быть ничего. |
|||
24
AlaMaRit
16.09.15
✎
12:42
|
(23)//*******************************************
Процедура НеОплаченныеНакладные() // Отчет по неоплаченным накладным... КонецПроцедуры Процедура ПриОткрытии() НеОплаченныеНакладные() КонецПроцедуры ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата())); ДатаПо = РабочаяДата() Вот эту часть кода я добавил, именно так щас он у меня выглядит, и выдает эту ошибку:(смотри ниже) <<?>>Процедура НеОплаченныеНакладные() {Отчет.Взаиморасчеты.Форма.Модуль(386)}: Определения процедур и функций должны размещаться перед операторами основной программы |
|||
25
xaozai
16.09.15
✎
13:03
|
ДатаПо = РабочаяДата()<<ТУТ ДОЛЖНА БЫТЬ ТОЧКА С ЗПТ>>
|
|||
26
xaozai
16.09.15
✎
13:04
|
+(25) А описания процедур нужно выше перенести, можно в самое начало.
|
|||
27
AlaMaRit
16.09.15
✎
13:08
|
(26) поставил ДатаПо = РабочаяДата(); но все равно
<<?>>Процедура НеОплаченныеНакладные() {Отчет.Взаиморасчеты.Форма.Модуль(386)}: Определения процедур и функций должны размещаться перед операторами основной программы |
|||
28
AlaMaRit
16.09.15
✎
13:08
|
что он хочет?
|
|||
29
HawkEye
16.09.15
✎
13:15
|
так надо
Таб.Показать("Взаиморасчеты",""); КонецПроцедуры //******************************************* Процедура НеОплаченныеНакладные() ...// Отчет по неоплаченным накладным... КонецПроцедуры Процедура ПриОткрытии() НеОплаченныеНакладные(); КонецПроцедуры ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата())); ДатаПо = РабочаяДата() |
|||
30
HawkEye
16.09.15
✎
13:15
|
;
|
|||
31
AlaMaRit
16.09.15
✎
13:18
|
(29) Таб<<?>>.Показать("Взаиморасчеты","");
{Отчет.Взаиморасчеты.Форма.Модуль(385)}: Переменная не определена (Таб) Таб.Показать("Взаиморасчеты","");<<?>> {Отчет.Взаиморасчеты.Форма.Модуль(385)}: Обнаружено логическое завершение исходного текста модуля Выдал эту ошибку |
|||
32
AlaMaRit
16.09.15
✎
13:28
|
(30) ну че там?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |