Имя: Пароль:
1C
 
Не обнаружен метод
0 orda
 
25.01.17
09:21
Платформа: 8.3.7.2008.
Типовая Конфигурация: Управление торговым предприятием для Казахстана: 2.0.10.7.  Обычное приложение. Режим совместимости: 8.2.13 Клиент-сервер

Вопрос. Из модуля формы элемента справочника "Номенклатура" вызывается метод регистра:
СписокТНВЭДПереченьИзъятий = РегистрыСведений.ТоварыСПониженнойСтавкойПошлин.ЗаполнитьСписокПереченьИзъятий();
Ошибка: Метод Объекта не обнаружен (ЗаполнитьСписокПереченьИзъятий)

В свою очередь в модуле менеджера регистра эта первая же экспорная функция:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

&НаСервере
Функция ЗаполнитьСписокПереченьИзъятий()  Экспорт    
    
    СписокТНВЭДПереченьИзъятий = Новый СписокЗначений;
    ПереченьИзъятий =  ПолучитьАктуальныйПереченьИзъятий();
    СписокТНВЭДПереченьИзъятий.ЗагрузитьЗначения(ПереченьИзъятий);
    
    Возврат СписокТНВЭДПереченьИзъятий;
    
КонецФункции

&НаСервере
Функция ПолучитьМакетПереченьИзъятий() Экспорт
    
    Макет = Неопределено;
    Попытка
        Макет = ЭСФСерверПовтИсп.ОбработкаОбменЭСФ().ПолучитьМакет("ПереченьИзъятий");
    Исключение
    КонецПопытки;
    
    Возврат Макет;
    
КонецФункции

&НаСервере
Функция ПолучитьАктуальныйПереченьИзъятий()
    
    Результат = Новый Массив;
    Макет = Неопределено;
    Попытка
        Макет = ЭСФСерверПовтИсп.ОбработкаОбменЭСФ().ПолучитьМакет("ПереченьИзъятий");
    Исключение
    КонецПопытки;
    
    Если Макет = Неопределено Тогда
        Возврат Результат;
    КонецЕсли;
    
    Возврат ОбщегоНазначения.ЗначениеИзСтрокиXML(Макет.ПолучитьТекст()).ВыгрузитьКолонку("КодТНВЭД");

КонецФункции

&НаСервере
Процедура ЗаполнитьТоварыИзПеречняИзъятия(Очищать = Ложь)  Экспорт
    
    ПереченьИзъятий =  ПолучитьАктуальныйПереченьИзъятий();
    
    СписокТНВЭДПереченьИзъятий = Новый СписокЗначений();
    
    СписокТНВЭДПереченьИзъятий.ЗагрузитьЗначения(ПереченьИзъятий);
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("СписокКодов",СписокТНВЭДПереченьИзъятий);
    Запрос.УстановитьПараметр("ОчищатьДанные",Очищать);
    
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТоварыСПониженнойСтавкойПошлин.Товар
    |ПОМЕСТИТЬ ТоварыПеречня
    |ИЗ
    |    РегистрСведений.ТоварыСПониженнойСтавкойПошлин КАК ТоварыСПониженнойСтавкойПошлин
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Товар
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.КодТНВЭД В(&СписокКодов)
    |    И ВЫБОР
    |            КОГДА НЕ &ОчищатьДанные
    |                ТОГДА НЕ Номенклатура.Ссылка В
    |                            (ВЫБРАТЬ
    |                                ТоварыПеречня.Товар
    |                            ИЗ
    |                                ТоварыПеречня КАК ТоварыПеречня)
    |            ИНАЧЕ ИСТИНА
    |        КОНЕЦ";
    
    ТаблицаТоваров = Запрос.Выполнить().Выгрузить();
    НаборЗаписей = РегистрыСведений.ТоварыСПониженнойСтавкойПошлин.СоздатьНаборЗаписей();
    //удаление всех записей из регистра
    Если Очищать Тогда
        НаборЗаписей.Записать();
    КонецЕсли;
    
    Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
        
        НаборЗаписей.Отбор.Товар.Установить(СтрокаТовара.Товар);
        НаборЗаписей.Прочитать();
        СтрокаДвижения = НаборЗаписей.Добавить();
        СтрокаДвижения.Товар = СтрокаТовара.Товар;
        
        НачатьТранзакцию();
        
        Попытка
            НаборЗаписей.Записать();
            ЗафиксироватьТранзакцию();
        Исключение
            ОтменитьТранзакцию();
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
        КонецПопытки;
        НаборЗаписей.Очистить();
    КонецЦикла;
    
КонецПроцедуры

#КонецЕсли
1 orda
 
25.01.17
09:22
В файловом режиме работает нормально. Ошибка инициируется только в режиме Клиент-сервер
2 orda
 
25.01.17
09:24
Может кто подскажет, что не так?
3 vicof
 
25.01.17
09:25
Вызывай с сервера,а не с клиента.
4 orda
 
25.01.17
09:28
(3) Что вызывать из сервера, не понял?
5 lxndr
 
25.01.17
09:30
взаимоисключающие параграфы:
>> Из модуля формы элемента справочника "Номенклатура" вызывается метод регистра


<<#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
6 orda
 
25.01.17
09:32
(5) Что взаимоисключающее?
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

т.е. наличиствует: "ТолстыйКлиентОбычноеПриложение"

что я не понимаю?
7 mehfk
 
25.01.17
09:33
Странная шняга. Попробуй вот эти "&НаСервере" поубирать.
8 orda
 
25.01.17
09:37
(7) сейчас попробую
9 orda
 
25.01.17
09:39
(7) Да, спасибо. Теперь работает нормально, но ситуация ясней не стала. Что не так?
10 vicof
 
25.01.17
09:46
(9) Ты в курсе как идет взаимодействие между клиентом и сервером в 1с?
11 orda
 
25.01.17
09:53
До сих пор думал, что ДА. А что не так? Подскажи.
12 mehfk
 
25.01.17
09:54
Проверь на последней тестовой версии платформы.
13 vicof
 
25.01.17
09:55
С толстого клиента обращаешься к процедуре, скомпилированной на сервере.
14 orda
 
25.01.17
09:59
(12) OK, но это не быстро (пока скачаешь...)
(13) Да, и что? Тем более здесь. как я понимаю процедура должна быть скомпилирована и там и там:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

или я не до конца разобрался?
15 mehfk
 
25.01.17
10:00
http://its.1c.ru/db/v839doc/bookmark/dev/TI000000165

Ниже приведена таблица, показывающая, какие директивы компиляции доступны в каких модулях системы «1С:Предприятие»:
16 mehfk
 
25.01.17
10:01
Я и сказал, что это странная шняга, потому как директивы компиляции в модуле менеджера нафиг не нужны.
17 orda
 
25.01.17
10:03
(16) Благодарю. Отбой