Автор: s.vitaliy 01.02.18, 10:07
1с 8.3 УПП 1.3
Поможіть розібратися я так розумію що
Предупреждение
в серверному варіанті неможна викликати з СпільногоМодуля. в свойствах спільного модуля стоять галочки СЕРВЕР КЛІЄНТ і ВИКЛИК СЕРВЕРА.
Додаю сам код і помилку.
КодПроцедура РезервированиеТоваровПоЗаказуНаПроизводстве(СсылкаНаДокумент, СначалаНаСкладе = Истина) Экспорт
Если ТипЗнч(СсылкаНаДокумент) = Тип("ДокументОбъект.ЗаказНаПроизводство") И СсылкаНаДокумент.ЭтоНовый() Тогда
Сообщить("Сначало нужно записать документ", СтатусСообщения.Важное);
Возврат;
КонецЕсли;
РезервированиеТоваровСсылка = ПолучитьРезервированиеТоваровПоЗаказуНаПроизводство(СсылкаНаДокумент);
Если Не РезервированиеТоваровСсылка.Пустая() Тогда
Режим = РежимДиалогаВопрос.ДаНетОтмена;
Ответ = Вопрос("Перезаполнить существующий документ ? Иначе создадим новый.", РежимДиалогаВопрос.ДаНет, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
РезервированиеТоваровОбъект = РезервированиеТоваровСсылка.ПолучитьОбъект();
КонецЕсли;
КонецЕсли;
Если РезервированиеТоваровОбъект = Неопределено Тогда
РезервированиеТоваровОбъект = Документы.РезервированиеТоваров.СоздатьДокумент();
ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(РезервированиеТоваровОбъект);
КонецЕсли;
РезервированиеТоваровОбъект.Заполнить(СсылкаНаДокумент.Ссылка);
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("ВидимостьСерии" , Ложь);
СтруктураПараметров.Вставить("Авторезервирование" , Истина);
СтруктураПараметров.Вставить("Авторазмещение" , Истина);
СтруктураПараметров.Вставить("СтратегияАвторезервированияПоЗаказам", ?(СначалаНаСкладе, Перечисления.СтратегииАвторезервированияНоменклатуры.СначалаНаСкладахПотомВЗаказахПоставщикам, Перечисления.СтратегииАвторезервированияНоменклатуры.СначалаВЗаказахПоставщикамПотомНаСкладах));
РезервированиеТоваровОбъект.ЗаполнитьТабличныеЧастиПередПроведениемУпр(СтруктураПараметров);
ФормаДокумента = РезервированиеТоваровОбъект.ПолучитьФорму();
ФормаДокумента.Открыть();
КонецПроцедуры
Помилка
{ОбщийМодуль.Армор.Модуль(898,11)}: Змінна не визначена (РежимДиалогаВопрос)
Режим = <<?>>РежимДиалогаВопрос.ДаНетОтмена;
{ОбщийМодуль.Армор.Модуль(899,84)}: Змінна не визначена (РежимДиалогаВопрос)
Ответ = Вопрос("Перезаполнить существующий документ ? Иначе создадим новый.", <<?>>РежимДиалогаВопрос.ДаНет, 0);
{ОбщийМодуль.Армор.Модуль(900,19)}: Змінна не визначена (КодВозвратаДиалога)
Если Ответ = <<?>>КодВозвратаДиалога.Да Тогда
{ОбщийМодуль.Армор.Модуль(108,3)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("Отсутствует номенклатура с заданными критериями поиска!");
{ОбщийМодуль.Армор.Модуль(121,4)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("По заданным критериям поиска найдено более 50 элементов номенклатуры!
{ОбщийМодуль.Армор.Модуль(172,4)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("Для строки документа: " + ТекущиеДанные.НомерСтроки + " не задана единица измерения",, "Ошибка");
{ОбщийМодуль.Армор.Модуль(177,4)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("Для номенклатуры: " + ТекущиеДанные.Номенклатура + " не ведется учет по сериям",, "Ошибка");
{ОбщийМодуль.Армор.Модуль(188,4)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("Для документа не задана единица измерения продукции",, "Ошибка");
{ОбщийМодуль.Армор.Модуль(193,4)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("Для номенклатуры: " + ТекущиеДанные.Номенклатура + " не ведется учет по сериям",, "Ошибка");
{ОбщийМодуль.Армор.Модуль(206,3)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("Штрихкод " + Штрихкод + " имеет неверный формат. Должно быть не меньше " + Формат(КоличествоСимволовШтрихкода,"ЧЦ=2; ЧДЦ=; ЧН=") + " символов",, "Ошибка");
{ОбщийМодуль.Армор.Модуль(212,3)}: Процедура або функція з вказаним ім`ям не визначена (Предупреждение)
<<?>>Предупреждение("Штрихкод " + Штрихкод + " уже существует в базе для номенклатуры " + СведенияПоШтрихКоду.Номенклатура + ?(ЗначениеНЕЗаполнено(СведенияПоШтрихКоду.СерияНоменклатуры),"", " с серией " + СведенияПоШтрихКоду.СерияНоменклатуры));
{ОбщийМодуль.Армор.Модуль(201,10)}: Процедура або функція з вказаним ім`ям не визначена (ВвестиСтроку)
Если Не <<?>>ВвестиСтроку(Штрихкод,"Проскануйте штрихкод", 13, Ложь) Тогда
{ОбщийМодуль.Армор.Модуль(678,16)}: Процедура або функція з вказаним ім`ям не визначена (ПолучитьФорму)
ФормаОтчета = <<?>>ПолучитьФорму("Отчет." + СтруктураВызоваОтчета.Отчет + ".Форма");
{ОбщийМодуль.Армор.Модуль(899,14)}: Процедура або функція з вказаним ім`ям не визначена (Вопрос)
Ответ = <<?>>Вопрос("Перезаполнить существующий документ ? Иначе создадим новый.", РежимДиалогаВопрос.ДаНет, 0);
! |
| http://pro1c.org.ua/index.php?act=announce&id=2: 5
|
Автор: podcast 01.02.18, 10:23
s.vitaliy @ Сегодня, 10:07
,
Скорей всего у вас не правильно стоят условия #Если Клиент Тогда, просмотрите на них, попробуйте добавить если их нету, там где у вас есть вызовы клиентских процедур.
Автор: s.vitaliy 01.02.18, 10:34
podcast @ Сегодня, 10:23
,
Дякую спробую.
Автор: logist 01.02.18, 10:41
Цитата(podcast @ 01.02.18, 10:23)
Скорей всего у вас не правильно стоят условия #Если Клиент Тогда
Судя по коду они вообще не стоят, это видно из текста ошибки.
Автор: Gazulo 01.02.18, 11:39
s.vitaliy @ Сегодня, 10:07
,
"РежимДиалогаВопрос", "Предупреждение" все це , я так розумію, виклики вікна, які є неможливими на сервері..треба превіряти Если Клиент
Автор: Vofka 01.02.18, 13:05
Судя по описанию, в случае с серверным вариантом эта процедура выполняется на сервере. А на сервере нельзя использовать Предупреждение, ВвестиСтроку, Вопрос и прочие интерактивные фунции. Поэтому, как писали выше, нужно такие блоки кода обрамлять директивами #Если Клиент Тогда
Автор: s.vitaliy 01.02.18, 14:47
Vofka @ Сегодня, 13:05
,
Якщо я правильно поняв то перед кожним викликом Предупреждение потрібно вказувати #Если Клиент Тогда ?
Автор: Vofka 01.02.18, 15:23
s.vitaliy @ Сегодня, 14:47
,
если логика подразумевает просто вывод предупреждения, в котором счелкается ОК и код выполняется дальше, то да.
Если же что-то типа
Режим = РежимДиалогаВопрос.ДаНетОтмена;
Ответ = Вопрос("Перезаполнить существующий документ ? Иначе создадим новый.", РежимДиалогаВопрос.ДаНет, 0);
Если Ответ = КодВозвратаДиалога.Да Тогда
РезервированиеТоваровОбъект = РезервированиеТоваровСсылка.ПолучитьОбъект();
КонецЕсли;
то в этом случае надо обрамить весь этот блок кода. Но в этом случае вам, исходя из бизнес-логики, нужно решить стоит ли выполнять
РезервированиеТоваровОбъект = РезервированиеТоваровСсылка.ПолучитьОбъект();
или не стоит (в случае, когда пользователь спросить нету возможности)
Автор: podcast 01.02.18, 15:37
s.vitaliy @ Сегодня, 14:47
,
Обычно в модуле объекта сначала всех процедур связанных с печать ставят условие, и после них закрывают.
Автор: s.vitaliy 01.02.18, 15:44
s.vitaliy @ Сегодня, 14:47
,
Дякую за допомогу розібрався помістив всі клієнські процедури в #Если Клиент Тогда Процедура() #КонецЕсли