Обращение к общему модулю в функции обработки на сервере
Мне необходимо обратится к общему модулю в обработке импорта заказов, что бы штрих код который создаётся в общем модуле формировался в обработке и записывался.
Но когда пытаюсь обратиться он мне выдаёт ошибку что переменная не определена.
Пробовал записывать по разному но каждый раз ошибка, может кто подсказать что я не правильно записываю ?
&НаСервере
Функция ПолучитьНоменклатуру(Имя, _ПолноеНаименование, СписокНоменклатуры, Количество, Площадь, Эскиз, НаименованиеИТ)
Наименование = Имя;
ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоКоду("000000003"); //продукция
Родитель = Справочники.Номенклатура.НайтиПоКоду("00000001889"); //группа продукция
Статус = "Создаю номенклатурную единицу: " + Наименование;
НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); //основная
Если ЗаказПВХТипИзделия = Справочники.ТипыИзделий.Алюминий Тогда
НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003");
КонецЕсли;
Если Лев(НаименованиеИТ, 2) = "МП" Тогда
Номен = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеИТ);
Иначе
Номен = Справочники.Номенклатура.НайтиПоНаименованию(Наименование);
КонецЕсли;
Если Номен = Справочники.Номенклатура.ПустаяСсылка() Тогда
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Если Лев(НаименованиеИТ, 2) = "МП" Тогда
Номен.Наименование = НаименованиеИТ;
Номен.НаименованиеПолное = НаименованиеИТ;
Иначе
Если ЗаказПВХТипИзделия = Справочники.ТипыИзделий.Алюминий Тогда
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = "Светопрозрачная конструкция из Алюм" + " №" + Номен.Наименование;
ИначеЕсли ЗаказПВХТипИзделия = Справочники.ТипыИзделий.ОкнаПВХ Тогда
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = "Светопрозрачная конструкция из ПВХ" + " №" + Номен.Наименование;
КонецЕсли;
КонецЕсли;
//Номен.НаименованиеПолное = _ПолноеНаименование;
Номен.НоменклатурнаяГруппа = НоменклатурнаяГруппа;
Номен.НоменклатурнаяГруппаЗатрат = НоменклатурнаяГруппа;
Номен.ВидНоменклатуры = ВидНоменклатуры;
Номен.ВестиУчетПоХарактеристикам = Истина;
Номен.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
Номен.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796); //шт
Номен.Родитель = Родитель;
Номен.Изделие = Истина;
Номен.Площадь = Площадь;
Номен.НеПодбиратьЦвет = Истина;
Номен.ИзделиеИзПВХ = Истина;
Номен.НаименованиеИТ = НаименованиеИТ;
Номен.НомерЗаказа = Объект.НомерЗаказа;
Номен.Записать();
Иначе
Номен = Номен.ПолучитьОбъект();
Номен.Наименование = Номен.Наименование;
Номен.НаименованиеПолное = Номен.НаименованиеПолное;
Номен.НоменклатурнаяГруппа = НоменклатурнаяГруппа;
Номен.НоменклатурнаяГруппаЗатрат = НоменклатурнаяГруппа;
Номен.НеПодбиратьЦвет = Истина;
Номен.НаименованиеИТ = НаименованиеИТ;
Номен.НомерЗаказа = Объект.НомерЗаказа;
Номен.Записать();
КонецЕсли;
ШтрихКод = РаботаСТорговымОборудованием.СформироватьШтрихКод();
//Штрих = СтрЗаменить(Объект.НомерЗаказа, Символы.НПП ,"") + СтрЗаменить(Сред(Наименование, 9), Символы.НПП , "");
СсылкаНаОбъект = Номен.Ссылка;
Рег = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
Рег.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8;
Рег.Владелец = СсылкаНаОбъект.Ссылка;
Рег.Штрихкод = ШтрихКод;
Рег.Качество = Справочники.Качество.Новый;
Рег.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоКоду("ШШ0084287");
Рег.Записать();
ПоказатьФункция СформироватьШтрихКод(Знач ПрефиксШтучногоТовара = Неопределено, Знач ПрефиксВнутреннегоШтрихкода = Неопределено) Экспорт
Но когда пытаюсь обратиться он мне выдаёт ошибку что переменная не определена.
Пробовал записывать по разному но каждый раз ошибка, может кто подсказать что я не правильно записываю ?
По теме из базы знаний
- Как мы запилили в АЙТАТ.РФ обработку-бота, чтобы ускорить отгрузку в 2 раза или Реальный опыт внедрения нового механизма "Трансляция событий" от 1С-Коннект
- Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)
- НеБезопасный прикладной программный интерфейс сервера
- Наука о чеках. Глава 2. Обработка для просмотра структуры и значений параметров кассовых чеков в json-файле
- Эффективное управление фоновыми заданиями и коммуникация сеансов сервера с Фоном с помощью Структуры обмена (ноу-хау) + Бонус: Альтернативный вариант через Хранилище настроек
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(8) Стоит только один флажок (Клиент обычное приложение).
Если выбирать любой другой или сразу несколько выдаёт ошибки
Если выбирать любой другой или сразу несколько выдаёт ошибки
{ОбщийМодуль.РаботаСТорговымОборудованием.Модуль(858,18)}: Тип не определен (ДиалогВыбораФайла)
Диалог = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
{ОбщийМодуль.РаботаСТорговымОборудованием.Модуль(1083,17)}: Тип не определен (ДиалогВыбораФайла)
Диалог = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
Прикрепленные файлы:
(13) Варианта 2:
1) Создать форму обычную, реализовать функционал в ней, тогда сможете использовать функции и процедуры этого общего модуля.
2) Использовать управляемую форму, тогда перенести функцию из общего модуля на форму.
П.С.
Ссылку от ссылки не надо получать, это плохой код.
1) Создать форму обычную, реализовать функционал в ней, тогда сможете использовать функции и процедуры этого общего модуля.
2) Использовать управляемую форму, тогда перенести функцию из общего модуля на форму.
П.С.
Рег.Владелец = СсылкаНаОбъект.Ссылка;
Ссылку от ссылки не надо получать, это плохой код.
А что возвращает ваша
Функция ПолучитьНоменклатуру.....
?
откуда она вызывается(&На клиенте?, &НаСервере?)
Вы вызываете клиентский ОбщийМодуль.РаботаСТорговымОборудованием из функции
&НаСервере?
Если вызывается с клиента и возвращает ссылку на записанную Номен, то вызовите после возврата результата ШтрихКод = РаботаСТорговымОборудованием.СформироватьШтрихКод(), и сделайте отдельную процедуру по записи в регистр.
Функция ПолучитьНоменклатуру.....
?
откуда она вызывается(&На клиенте?, &НаСервере?)
Вы вызываете клиентский ОбщийМодуль.РаботаСТорговымОборудованием из функции
&НаСервере?
Если вызывается с клиента и возвращает ссылку на записанную Номен, то вызовите после возврата результата ШтрихКод = РаботаСТорговымОборудованием.СформироватьШтрихКод(), и сделайте отдельную процедуру по записи в регистр.
Ох-Ох-ой. Как пример:
Что-то форматирование слетело :(
И еще не уверен в ЗаполнитьЗначениеСвойств. кто источник, кто приемник
PS: но может и не сработать код :)
&НаКлиенте
Процедура СамаяВажная()
НоваяНоменклатура = ПолучитНоменклатуру(параметр1,параметр2, ... Параметр N);
ШтрихКод = РаботаСТорговымОборудованием.СформироватьШтрихКод();
ДанныеДляЗаписи = ПолучитьСтруктуруДляЗаписи();
ДанныеДляЗаписи.Владелец = НоваяНоменклатура;
ДанныеДляЗаписи.ШтрихКод = ШтрихКод;
ЗаписатьВРегистр(ДанныеДляЗаписи);
КонецПроцедуры
&НаСервере
Функция ПолучитьСтруктуруДляЗаписи()
СтруктураДляЗаписи = Новый Структура;
СтруктураДляЗаписи.Добавить("ТипШтрихкода", ПланыВидовХарактеристик.ТипыШтрихкодов.EAN8);
СтруктураДляЗаписи.Добавить("Владелец" , Неопределено);
СтруктураДляЗаписи.Добавить("Штрихкод", Неопределено);
СтруктураДляЗаписи.Добавить("Качество", Справочники.Качество.Новый);
СтруктураДляЗаписи.Добавить("ЕдиницаИзмерения", Справочники.ЕдиницыИзмерения.НайтиПоКоду("ШШ0084287"));
Возврат СтруктураДляЗаписи;
КонецФункции
&НаСервере
Функция ПолучитНоменклатуру(параметр1,параметр2, ... Параметр N)
// здесь код по получению, созданию и записи новой номенклатуры
Возврат НоваяНоменклатура;
КонецФункции
&НаСервере
Прцедура ЗаписатьВРегистр(ДанныеДляЗаписи)
Рег = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
ЗаполнитьЗначениеСвойств(ДанныедляЗаписи, Рег);
Рег.Записать();
КонецПроцедуры
ПоказатьЧто-то форматирование слетело :(
И еще не уверен в ЗаполнитьЗначениеСвойств. кто источник, кто приемник
PS: но может и не сработать код :)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот