8.х Обработка тч работает и неработает

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем desintegrer, 10 окт 2012.

  1. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте.
    Конфигурация 1с 8.2 ут 10.3

    Есть скачанная обработка заполнения табличных частей (нужна что заполнить прих накладную из экселя)

    При открытии её через меню - файл - открыть и выборе этой обработки через обзор она открывается - элементы на форме работают.(но т.к. эта обработка работает через открытый документ который она должна заполнять - то нужно её сначала привязать к документу через меню сервис).

    Когда привязываешь её через меню сервис - создаешь новый документ "Поступление товаров и услуг"
    выбираешь через пункт заполнить эту обработку - появляется форма меню (только заполнить таблчасть документа/только очистить колонку 1/ только очистить колонку 2 / очистить колонку 2 и добавить в таблчасть) в нем 4 пункта при выборе любого из этих пунктов форма обработки не открывается , а появляется ошибка :

    Заполнение ТЧ не произведено !
    Поле объекта не обнаружено (ОсновныеДействияФормыЗагрузитьДокумент)

    На форме обработки присутствует такая кнопка и процедура в модуле формы есть..

    Почему возникает ошибка и как это можно исправить . Прошу подсказать ?
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    покажи полный текст ошибки
  3. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
  4. 1cUserAndrew
    Online

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Могу ошибаться, но, по-моему, ОсновныеДействияФормы - это панель на форме. А ЗагрузитьДокумент - это, как Вы сказали, кнопка.
    Тогда, наверное, должно быть так:
    Код:
    ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЗагрузитьДокумент
    Найдите эту строчку и попробуйте исправить.
  5. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Посмотрел . Выводы следующие :

    есть кнопка Загрузить Документ - с ней связана процедура ОсновныеДействияФормыОсмновные ДействияФормыЗагрузитьДокумент() (в модуле формы)

    есть процедура инициализации - предлагающая те самые 4 варианта развития событий которые я описывал она также ссылается на кнопку
    до исправления там было написано ОсновныеДействияФормыЗагрузитьДокумент (когда добавлял основные дейтсвия формы 2 раза как в процедуре то ошибка оставалась той же) теперь переименовал в Загрузить Документ и ошибка стала ...

    "Значение не является значением объектного типа (ЭлементыФормы)"

    картинки код и свойства кнопки :

    свойства кнопки
    [​IMG]

    процедура модуль формы
    [​IMG]

    процедура модуль объекта Инициализация
    [​IMG]
  6. 1cUserAndrew
    Online

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Не совсем понятно, на что ругается.
    Как я понимаю, должно быть так (хотя логики обработки не знаю):
    Код:
    Форма.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Удалить(Форма.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЗагрузитьДокумент);
    При таком варианте ругается?
  7. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Да на последней картинке - так и написано в модуле объекта - ругается так "Значение не является значением объектного типа (ЭлементыФормы)"
  8. 1cUserAndrew
    Online

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Так затрудняюсь сказать, в чем проблема.
    Если есть возможность, выкладывайте обработку.
  9. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
  10. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    косяк в Процедуре Инициализировать() ...
    форма неопределена...
    ЭтотОбъект.ПолучитьФорму() - тут какой то глюк...копай
  11. 1cUserAndrew
    Online

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Да, в этой строке, но немного не в том :)

    У Вас написано:
    Код:
    Форма = ЭтотОбъект.ПолучитьФорму();
    При этом у обработки есть реквизит с именем "Форма". Поэтому при обращении система первым делом обращается к реквизиту, а не к той переменной, которую назвали "Форма".
    В общем, измените имя переменной.
    Т.е. тот фрагмент кода напишите так:
    Код:
    Эл = ВариантЗаполнения.ВыбратьЭлемент();
    Если Эл<>Неопределено Тогда
    ФормаОбработки = ЭтотОбъект.ПолучитьФорму();
    ФормаОбработки.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Удалить(ФормаОбработки.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЗагрузитьДокумент);
    ТаблицаДанных = ФормаОбработки.ОткрытьМодально();
    Если ТаблицаДанных = Неопределено Тогда
    Возврат
    КонецЕсли;
    
    ЗаполнитьДокумент(ДокументОбъект, ИмяТЧ, ТаблицаДанных, Эл.Значение);
    КонецЕсли;
    На эту ошибку больше ругаться не будет.
    Будет ругаться на другую :)

    Связано с тем, что в модуле формы есть строка
    Код:
    ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЗагрузитьДокумент.Доступность = Ложь;
    Т.е. выключается доступность кнопки.
    А до этого в модуле объекта эта кнопка удаляется
    Код:
    ФормаОбработки.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Удалить(ФормаОбработки.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЗагрузитьДокумент);
    Поэтому надо или закомментировать эту строку (где отключается доступность) или прописать условие, в котором проверять, есть ли такая кнопка на форме, и если есть, тогда только отключать ее доступность.
  12. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    1cUserAndrew



    я пробовал писать Форма1=ЭтотОбъект.ПолучитьФорму();

    все тот же глюк..а вот если прописать
    ЭтотОбъект.ПолучитьФорму().ОткрытьМодально() то все робит ..почти :)
  13. 1cUserAndrew
    Online

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Странно, ...
    может дальше по коду не исправил. Там ведь еще встречается
    Код:
    ....Удалить(Форма.ЭлементыФормы.....
    или обработку не перезалил в справочник?

    Я написал
    Код:
    ФормаОбработки = ЭтотОбъект.ПолучитьФорму();
    Что по сути мало, чем отличается от Форма1
    И работает :)
  14. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    1cUserAndrew

    оба условия делал ...в переменной глухо..форму не получает..а открыть сразу выходит..пробовал правда на КА..но не в этом дело

    desintegrer


    у тебя то вышло?
  15. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    я сейчас посмотрю.
  16. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Извиняюсь перед присутствовавшими за задержку.

    Проверил вариант 1CUserAndrew
    выдается ошибка
    [​IMG]

    Если вариант 1CUserAndrew и Dmitry_76
    объединить тогда форма обработки открывается (в ней функционал работает)
    НО .... кнопка загрузить в документ и ок неактивны .....

    [​IMG]

    думаю , что 1CUserAndrew не зря вот это написал :

    Связано с тем, что в модуле формы есть строка
    ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЗагрузитьДокумент.Доступность = Ложь;

    Т.е. выключается доступность кнопки.
    А до этого в модуле объекта эта кнопка удаляется
    ФормаОбработки.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Удалить(ФормаОбработки.ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЗагрузитьДокумент);


    Поэтому надо или закомментировать эту строку (где отключается доступность) или прописать условие, в котором проверять, есть ли такая кнопка на форме, и если есть, тогда только отключать ее доступность.
  17. 1cUserAndrew
    Online

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Да именно про эту (вторую) ошибку я и говорил.

    А кнопки потому и недоступны, потому что их доступность намеренно отключается.
    Можно убрать эти строки (закомментировать). Тогда кнопки будут доступны.
  18. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Вместо комментирования добавил доступность кнопки на шаге 2 (добавления номенклатуры)

    После чего кнопка стала доступна когда надо . Но :
    1)колонка со значениями ставки ндс должна иметь только цифры иначе "Ошибка в выражении"

    2)При отметке колонок Страна происхождения или Номер гтд - возникает ошибка конкатенации слова ндс и значения одной из этих колонок .
    3)Если обе колонки не выбирать то всё наденное действительно загружается в документ но создаются ненужные записи с именем не задан в справочнике серии номенклатуры . (в общем обработка совсем не дописана)

    ну так можно до бесконечности писать ... То что просил мне уже помогли решить . Спасибо !

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