Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
Рейтинг 4.55/163: Рейтинг темы: голосов - 163, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 49
1C 8.x

Ошибка: Переменная не определена РаботаСДокументами

06.07.2017, 12:15. Показов 485594. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В 1C я новичок, и мне выдали задание на практику. Почти все сделал, но 1C выдает ошибки, что не объявлены переменные (выделены жирным курсивом). Как их исправить, я не знаю. Испробовал множество вариантов, и ни к какому результату придти не смог. Прошу помощи при решении этих проблем.
Ошибки и код представлены ниже ↓

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
&НаКлиенте
Процедура ПереченьНоменклатурыКоличествоПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
[B][I]РаботаСДокументами[/I][/B].РассчитатьСумму(СтрокаТабличнойЧасти);      //Проверка: Тонкий клиент
КонецПроцедуры
 
&НаКлиенте
Процедура ПереченьНоменклатурыЦенаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
[B][I]РаботаСДокументами[/I][/B].РассчитатьСумму(СтрокаТабличнойЧасти); //Проверка: Тонкий клиент
КонецПроцедуры
 
&НаКлиенте
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
    // Получить текущую строку табличной части.
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
// Установить цену.
СтрокаТабличнойЧасти.Цена = [B][I]РаботаСоСправочниками[/I][/B].РозничнаяЦена(       //Проверка: Тонкий клиент
Объект.Дата, СтрокаТабличнойЧасти.Номенклатура);
// Пересчитать сумму строки
[B][I]РаботаСДокументами[/I][/B].РассчитатьСумму(СтрокаТабличнойЧасти); //Проверка: Тонкий клиент
КонецПроцедуры
 
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Отбор.Свойство("Мастер") Тогда
        ПрограммныйОтбор = Истина;
        ПолеОтбора = Новый ПолеКомпоновкиДанных("Мастер");
        Параметры.Отбор.Свойство("Мастер", ЗначениеОтбора);
    КонецЕсли
КонецПроцедуры
 
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если ПрограммныйОтбор = Истина Тогда
ПрограммныеНастройки = [B][I]Список[/I][/B].КомпоновщикНастроек.ФиксированныеНастройки; //Проверка: Тонкий клиент
Для Каждого ЭлементНастроек Из ПрограммныеНастройки.Отбор.Элементы Цикл
Если ЭлементНастроек.ЛевоеЗначение = ПолеОтбора Тогда
ПрограммныеНастройки.Отбор.Элементы.Удалить(ЭлементНастроек);
КонецЕсли;
КонецЦикла;
Настройки = [B][I]Список[/I][/B].КомпоновщикНастроек.Настройки; //Проверка: Тонкий клиент
ЭлементОтбора =
Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ЗначениеОтбора;
[B][I]Список[/I][/B].КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); //Проверка: Тонкий клиент
КонецЕсли;
КонецПроцедуры
 
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    Если ПрограммныйОтбор = Истина Тогда
Настройки = [B][I]Список[/I][/B].КомпоновщикНастроек.Настройки; //Проверка: Тонкий клиент
Для Каждого ЭлементНастроек Из Настройки.Отбор.Элементы Цикл
Если ЭлементНастроек.ЛевоеЗначение = ПолеОтбора Тогда
Настройки.Отбор.Элементы.Удалить(ЭлементНастроек);
КонецЕсли;
КонецЦикла;
[B][I]Список[/I][/B].КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); //Проверка: Тонкий клиент
КонецЕсли;
КонецПроцедуры
 
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Индекс = ПроверяемыеРеквизиты.Найти("ПереченьНоменклатуры.НаборСвойств");
Если Индекс <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(Индекс);
КонецЕсли;
Индекс = 0;
Для Каждого ТекСтрокаПереченьНоменклатуры Из [B][I]ПереченьНоменклатуры[/I][/B] Цикл  //Проверка: Сервер
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры =
Перечисления.ВидыНоменклатуры.Материал Тогда
Если Не ЗначениеЗаполнено(ТекСтрокаПереченьНоменклатуры.НаборСвойств)
Тогда                                    
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "В строке " + Строка(Индекс+1) +" списка Перечень номенклатуры не заполнена колонка Набор свойств";
Сообщение.Поле = "ПереченьНоменклатуры[" + Строка(Индекс)
+ "].НаборСвойств";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Индекс = Индекс + 1;
КонецЦикла;
КонецПроцедуры
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2017, 12:15
Ответы с готовыми решениями:

Ошибка "Переменная не определена (РаботаСДиалогами)"
Здравствуйте! создал внешний отчет, в форме которого есть реквизит типа...

Ошибка: переменная не определена
Перечитала все советы, все перепробовала. Никакого толка. Версия 8.2. Пожалуйста :( Скрин во...

1С 8,3 Ошибка: Переменная не определена
Доброго времени суток Нужна помощь в коде Начал Изучать 1с нужно в расходном документе...

16
Тест
Эксперт 1С
383 / 162 / 57
Регистрация: 26.02.2010
Сообщений: 1,245
06.07.2017, 16:03
Ну РаботаСДокументами это судя по всему общий модуль, или какой то объект, которого вовсе нет, или не доступен из клиента или данной процедуры. С РаботаСоСправочниками та же история
Список возможно на клиенте не дсотупен. Хотя вроде как должен, если это реквизит объекта. Для ПереченьНоменклатуры наверное тоже самое.
Сложно ванговать, без представления откуда там эти объекты должны быть то
0
Эксперт 1С
 Аватар для GreenkA
3066 / 2013 / 526
Регистрация: 25.06.2009
Сообщений: 6,964
12.07.2017, 01:48
Андрей Малютин, РаботаСДокументами - явно общий модуль, процедуры которого возможно не экспортные(?), либо в свойствах общего модуля не выставлена галочка клиента.
Лучше конечно выложите конфигурацию и само задание.
0
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 49
12.07.2017, 10:09  [ТС]
Вот
Вложения
Тип файла: rar InfoBase3.rar (1.11 Мб, 40 просмотров)
0
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 1
12.07.2017, 23:30
...похожая ситуация, я в 1C тоже новичок, и мне выдали задание схожее на практику. Почти все сделал, но прога выдает ошибки теже что и у вас. Все испробованные варианты не помогли, и ни к какому результату придти не смог. Прошу помощи вот на этом ресурсе жду ответ - удачи
0
Эксперт 1С
 Аватар для GreenkA
3066 / 2013 / 526
Регистрация: 25.06.2009
Сообщений: 6,964
13.07.2017, 00:31
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Андрей Малютин, у вас для всех общих модулей установлен флаг "глобальный", а это значит, что обращение к процедурам и функциям такого общего модуля идет без указания имени самого общего модуля.
Кликните здесь для просмотра всего текста
Глобальный — если флаг установлен, функции и процедуры из этого модуля становятся доступны в глобальном контексте. Т.е их можно вызвать в любом месте конфигурации, обращаясь без название общего модуля. Однако добавляется условие — название процедур и функций в этом общем модуле должны быть уникальны в рамках глобального контекста.

Т.е. в вашем случае два варианта: убираете флаг для общих модулей и оставляете код неизменным, либо оставляете флаг и убираете везде имена общих модулей, но следите за уникальностью имен процедур и функций в глобальном контексте.

По поводу Списка - ничего не нашла в реквизитах формы и объекта. Еще раз: опишите задание, чтобы помочь вам в этом вопросе.

Добавлено через 4 минуты
Насчет процедуры ОбработкаПроверкиЗаполнения() - почему у вас эта процедура в форме документа, а не в модуле объекта?
Думаю, тут вы ошиблись. Конкретно про неопределенную переменную. ПереченьНоменклатуры - это табличная часть документа, в форме документа обращение к ней идет через Объект.ПереченьНоменклатуры, в модуле документа - ПереченьНоменклатуры.
0
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 49
13.07.2017, 12:02  [ТС]
Задание выполнял по этой книге. Ошибки эти появились после выполнения задания, начинающегося с 815 страницы. До этого все работало как надо.
Вложения
Тип файла: zip 1C_8_3_compressed.zip (8.60 Мб, 57 просмотров)
0
Эксперт 1С
 Аватар для GreenkA
3066 / 2013 / 526
Регистрация: 25.06.2009
Сообщений: 6,964
13.07.2017, 22:05
Андрей Малютин, т.е. вы предлагаете перечитать мне всю книгу, чтобы понять, в чем ошибка со Списком?
Про общие модули я объяснила ситуацию. Скажите, в каком месте книги была речь о флагах "глобальный" для всех ваших общих модулей?
0
13.07.2017, 23:56

Не по теме:

Цитата Сообщение от GreenkA Посмотреть сообщение
т.е. вы предлагаете перечитать мне всю книгу, чтобы понять, в чем ошибка со Списком?
:bravo: Ольга, привет! Давно тебя видно не было...

0
13.07.2017, 23:59

Не по теме:

Dethmontt, и тебе привет:delight: Проблем, хлопот насобиралось)
Круто, когда моему возвращению рады:tender:

0
14.07.2017, 00:02

Не по теме:

GreenkA, прям аж таки соскучились :kissing:
С возвращением

0
14.07.2017, 00:06

Не по теме:

Цитата Сообщение от Dethmontt Посмотреть сообщение
С возвращением
Спасиб:tender: Можно уже не скучать:D Буду стараться появляться почаще:yes:

0
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 49
14.07.2017, 00:33  [ТС]
Я вообще ничего там не менял, а делал все по книге. В книге про глобальные и локальные переменные ничего сказано не было. До этого момента вся разработка шла нормально, проблемы быстро решались, когда возникла эта проблема с переменными, я на других форумах прочитал, что нужно в данном случае использовать глобальные переменные, после этого ошибок и стало в 10 раз больше.
0
Эксперт 1С
 Аватар для GreenkA
3066 / 2013 / 526
Регистрация: 25.06.2009
Сообщений: 6,964
14.07.2017, 00:36
Андрей Малютин, ладно, про глобальные модули вы поняли и разобрались, что надо изменить, чтобы ошибки исчезли? ОбработкуПроверкиЗаполнения() перенесли?

Конкретно про процедуры ПередЗакрытием(), ПриОткрытии() - можете сказать конкретно, где этот код описывается в книге?
0
 Аватар для Maxon4ick
7 / 7 / 1
Регистрация: 14.07.2017
Сообщений: 47
14.07.2017, 10:14
Сталкивался с подобным. Решение:

1) Проверить стоят ли галочки "Сервер" и "Вызов сервера" в свойствах общего модуля.
2) Проверить все ли функции внутри общего модуля экспортные.

1C
1
2
3
Функция НазваниеФункции(Параметры) экспорт
              ...
КонецФункции
0
0 / 0 / 0
Регистрация: 15.05.2015
Сообщений: 49
14.07.2017, 10:20  [ТС]
Со страницы 858
0
Эксперт 1С
 Аватар для GreenkA
3066 / 2013 / 526
Регистрация: 25.06.2009
Сообщений: 6,964
14.07.2017, 14:08
Андрей Малютин, внимательно читайте книгу. Стр. 855 - речь о форме списка документа, а у вас отбор в форме документа.
Значит процедуры ПриСозданииНаСервере(), ПриОткрытии(), ПередЗакрытием() должны быть в форме списка документа "Оказание услуг", реквизиты формы для отбора - тоже, и не забудьте их вынести на форму, а то отбор задавать будет негде.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.07.2017, 14:08

Ошибка Переменная не определена в Общем модуле ПроведениеРасчетов
Добрый вечер всем! Я ученик-новичок в 1с, потому заранее извиняюсь при наличии элементарных ошибок....

Ошибка: Переменная не определена (РаботаСоСправочниками), СтрокаТабличнойЧасти.Цена = <<?>>РаботаСоСправочниками.Розничн
Выдает ошибку, в чем проблема, помогите пожалуйста

Ошибка "Переменная не определена (СтроковаяФункция)"
Задание:Напишите процедуру, которая принимает в качестве параметра массив, а затем обнуляет его...

1с Печатная форма. Ошибка: Переменная не определена
Добрый день! Пытаемся создать печатную форму в учебной версии 1с. Сделали все через конструктор....

Ошибка. Переменная не определена
Доброго дня! Прошу помощи... из модуля формы делаю запрос, выдает ошибку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru