7.7 при создании процедуры выдает ошибку

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем AlaN, 16 сен 2015.

  1. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    это вроде не обработка, а код я весь выложил Отчеты-Взаиморасчеты, и хочу в диалоге взаиморасчетов прикрутить кнопку не оплаченные накладные
    --- Объединение сообщений, 16 сен 2015 ---
    а к4ак должна она выглядеть эта процедура?
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Код:
    Процедура ПриОткрытии()
       ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
       ДатаПо = РабочаяДата(); 
       //НеОплаченныеНакладные();
    КонецПроцедуры
    - так оставьте процедуру ПриОткрытии()
  3. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    таже ошибка
  4. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    заново покажите ВЕСЬ код из отчета
  5. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    //*******************************************
    Процедура ПриОткрытии()
    ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
    ДатаПо = РабочаяДата();
    //НеОплаченныеНакладные();
    КонецПроцедуры

    Процедура ПриОткрытии();
    ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
    ДатаПо = РабочаяДата();
    НеОплаченныеНакладные();
    КонецПроцедуры
  6. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    это реальный код у Вас?? Процедура ПриОткрытии() - одну удалите
  7. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    да раельный
    --- Объединение сообщений, 16 сен 2015 ---
    удалил,
    Процедура ПриОткрытии()
    ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
    ДатаПо = РабочаяДата();
    //НеОплаченныеНакладные();
    КонецПроцедуры

    ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
    ДатаПо = РабочаяДата();
    НеОплаченныеНакладные();
    КонецПроцедуры
    <<?>>Процедура ПриОткрытии()

    {Отчет.Взаиморасчеты.Форма.Модуль(385)}: Определения процедур и функций должны размещаться перед операторами основной программы
  8. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    гадать можно долго... Давайте сюда файл *.md который находится в папке информ.базы
  9. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    чёто не могу загрузить
  10. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    в архив сначала добавьте(zip/rar)
  11. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    сжал, по максимуму, пытаюсь загрузить, говорит файл слишком большой
    --- Объединение сообщений, 16 сен 2015 ---
    может разбить его?
  12. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    на файлобменник, сюда ссылку
  13. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Последнее редактирование: 16 сен 2015
  14. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    ну что?
  15. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    у вас внизу не понятно что было!! Скопируйте этот код в Ваш отчет:
    //*******************************************
    процедура выбДаты(Реж)
    если Реж = 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);
    Таб.Показать("Взаиморасчеты","");

    КонецПроцедуры

    //*******************************************
    Процедура ПриОткрытии()
    ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
    ДатаПо = РабочаяДата();
    //НеОплаченныеНакладные();
    КонецПроцедуры
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    или определена ниже
  17. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Код:
    ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
    ДатаПо = РабочаяДата();
    
    //*******************************************
    Процедура ПриОткрытии()
       ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
       ДатаПо = РабочаяДата();
       //НеОплаченныеНакладные();
    КонецПроцедуры
    
    ДатаС = Мин(ПолучитьДатуТА(),НачМесяца(РабочаяДата()));
    ДатаПо = РабочаяДата();
    НеОплаченныеНакладные();
    КонецПроцедуры
    - вот так было после процедуры Сформировать() :eek:
    процедуры НеОплаченныеНакладные() вообще нет
  18. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    заменить весь?
  19. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    да, я внизу привел в раб.состояние :)
  20. TopicStarter Overlay
    AlaN
    Offline

    AlaN

    Регистрация:
    7 сен 2015
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    взаиморасчеты открывает, но когда нажимаю на кнопку не оплаченные накладные эту ошибку выдает
    НеОплаченныеНакладные<<?>>()
    Процедура не обнаружена (НеОплаченныеНакладные)

Поделиться этой страницей