Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54

1с8.1 не пойму ошибку

06.01.2010, 02:43. Показов 6033. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Решил изучить 1с8. Учебник Радченко М.Г. "1СПредприятие 8.1. Практическое пособие разработчика. Примеры и типовые приемы".
Запнулся на II части Глава 6. Первый запрос, который создается
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
"ВЫБРАТЬ
   |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
   |    ОказаниеУслугиПереченьНоменклатуры.Количество,
   |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
   |    ОказаниеУслугиПереченьНоменклатуры.Сумма,
   |    СтоимостьМатериаловОстатки.СтоимостьОстаток,
   |    ОстаткиМатериаловОстатки.КоличествоОстаток,
   |    ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
   |ИЗ
   |    Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
   |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
   |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
   |                &МоментВремени,
   |                Материал В (&СписокНоменклатурыДокумента)
   |                    И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе
   |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал
   |ГДЕ
   |    ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
   |
   |ДЛЯ ИЗМЕНЕНИЯ
   |    РегистрНакопления.ОстаткиМатериалов.Остатки,
   |    РегистрНакопления.СтоимостьМатериалов.Остатки"
Выдает кучу ошибок, по сути как текст запроса не распознается.
Сам учебник залил на депозит .
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.01.2010, 02:43
Ответы с готовыми решениями:

1С8 При определённом контрагенте 1С при выборе товара выдаёт ошибку: Обнаружено дублирование ключевых значений
1С8 УТ11 При определённом контрагенте 1С при выборе товара выдаёт ошибку: Обнаружено дублирование ключевых значений в колонках : Ссылка....

Не пойму ошибку компиляции
пожалуйста, помогите найти ошибку #include <iostream> int sum(int a, int b); int main(){ int a = 2, b = 3, c, d; с = sum(a, b);...

Не пойму ошибку enum
#include <iostream> enum position {left, center, right}; using namespace std; void main() { position pos; pos=left; } ...

19
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
06.01.2010, 18:34
Какая ошибка, что пишет, вероятнее всего, у вас отсутствует какой-то элемент данных.
С точки зрения синтаксиса запрос вроде правильный, какую ошибку выдает при попытке открыть запрос в конструкторе?

ЗЫ. Да и копировать текст запроса это зло, надо создавать его самому...
0
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
06.01.2010, 22:28  [ТС]
Константин, запрос создавался конструктором запросов - я же по учебнику делал )) Сейчас уточню что я вижу: Условно обозначим код запроса , который я выше выложил как переменную Z.
Получается
1C
1
2
3
4
5
6
Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
   Запрос.Текст  = Z; 
Иначе
   Запрос.Текст = Z2; 
//не оперативный
Ошибка №1: Запрос.Текст =<<?>>, т.е. Z != ЗАПРОС. Хотя тот же запрос на месте Z2 такой ошибки не выдает. Ошибка №2: "{Документ.ОказаниеУслуги(3,6)}: Переменная не определена (Режим)", хотя вчера Режим определялся, где я его мог удалить я пока тоже не понял.
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
06.01.2010, 22:44
1, не правильно, надо делать так: (все дело в области видимости, у вас не задан параметр Запрос.Текст)
1C
1
2
3
4
5
6
7
8
9
10
11
Запрос = Новый Запрос;
Запрос.Текст  = ТекстЗапроса; 
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
   ТекстЗапроса  = Z; 
Иначе
   ТекстЗапроса = Z2; 
//не оперативный
 
//или лучше так
Запрос = Новый Запрос;
Запрос.Текст  = ?(Режим = РежимПроведенияДокумента.Оперативный Тогда, Z, Z2);
1
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
06.01.2010, 23:06  [ТС]
Запрос.Текст определяется автоматически как реквизит Запроса когда точку ставлю (отображается: Выполнить; МенеджерВременныхТаблиц; Текст; УстановитьПараметр). Я попробывал так его задать - оно дало "не объявлена переменная ТекстЗапроса". Убрал как было. Эту ошибку уже не показывает. Ту же ошибку объявления переменной дает касательно "Режим". Пробывал "Режим = РежимЗапроса" - тоже не воспринимает правильно.
Еще вопрос: как компилить конкретно взятый модуль? При запуске отладки(F5) спрашивает запускать или нет если ошибки найдены и запускает без изменений если говорю "нет". Хотелось бы процесс ускорить
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
06.01.2010, 23:08
Еще вопрос: как компилить конкретно взятый модуль? При запуске отладки(F5) спрашивает запускать или нет если ошибки найдены и запускает без изменений если говорю "нет". Хотелось бы процесс ускорить
тут нет такого, все работает как единое целое
0
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
06.01.2010, 23:13  [ТС]
Понял. А хоть список ошибок как обновить? А то стоят ошибки, которые уже исправил.
А насчет режима: Как его еще можно обозвать и где я его мог пропустить, что он не определяется?
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
06.01.2010, 23:23
я не пойму, что за режим, скиньте ввесь текст модуля, а то я щас ничего не пойму
0
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
06.01.2010, 23:30  [ТС]
режим, который после Если:
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
Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
   Запрос.Текст =  "ВЫБРАТЬ
                   |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
                   |    ОказаниеУслугиПереченьНоменклатуры.Количество,
                   |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
                   |    ОказаниеУслугиПереченьНоменклатуры.Сумма,
                   |    ОстаткиМатериаловОстатки.КоличествоОстаток,
                   |    СтоимостьМатериаловОстатки.СтоимостьОстаток,
                   |    ОстаткиМатериаловНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
                   |ИЗ
                   |    Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
                   |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
                   |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
                   |                &МоментВремени,
                   |                Материал В (&СписокНоменклатурыДокумента)
                   |                    И Склад = &СкладВДокументе) КАК ОстаткиМатериаловНаСкладе
                   |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловНаСкладе.Материал
                   |ГДЕ
                   |    ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
                   |
                   |ДЛЯ ИЗМЕНЕНИЯ
                   |    РегистрНакопления.ОстаткиМатериалов.Остатки,
                   |    РегистрНакопления.СтоимостьМатериалов.Остатки" 
                    ;
   Иначе
   Запрос.Текст  = "другой запрос" ;
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
06.01.2010, 23:43
А где у вас определения переменной Режим
0
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
06.01.2010, 23:51  [ТС]
Собственно нигде. По крайней мере я сам эту переменную не объявлял. Я опирался на книжку и четко делал как там написано. Пинцип "передрать и проанализировать". Делал пошагово- по текущий момент "режим" не встречался. Вот я и решил что это зарезервированный параметр.
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
07.01.2010, 12:01
Хотите помощи, просто скиньте весь модуль с кодом, я просто не пойму как вам должно определятся режим проведения, вообще-то делается это не так.
0
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
07.01.2010, 14:37  [ТС]
Я же скинул - вчерашнее сообщение в 22:30. В теме на первой странице после первой Вашей просьбы показать модуль. Это весь текст модуля документа ОказаниеУслуги. А в общем модуле РаботаСДокументами переменная Режим тоже не указана (там только расчет по форме)
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
07.01.2010, 14:50
Ну не похоже на код модуля, у вас что нет ни процедур ни функций?
как же вы собираетесь работать, ладно давайте попорядку:
там у вас такой текст:
1C
1
2
3
4
5
6
7
8
Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
   Запрос.Текст  = 
   ;
Иначе
   Запрос.Текст  = 
   ;
КонецЕсли;
но, в книжке ясно написано:
После этого можно полностью удалить содержимое обработчика события ОбработкаПроведения в модуле документа и создать в нем заготовку процедуры проведения. Текст запроса, выполняемого в режиме оперативного проведения, будет отличаться от запроса, выполняемого при неоперативном проведении. Поэтому формирование текста запроса мы включим в условие Если … Иначе … КонецЕсли: (листинг 6.3).
Листинг 6.3. «Заготовка» процедуры проведения
Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Запрос.Текст =
;
Иначе
Запрос.Текст =
;
КонецЕсли;
из этого следует что в модуле объекта должна быть такая процедура:
1C
1
2
3
4
5
Процедура ОбработкаПроведения(Отказ, Режим)
    
//а внутри процедуры должен быть обработчик (тобиш ваш текст)
    
КонецПроцедуры
как видно из самой процедуры, в нее передается 2 переметра Отказ и Режим, а вы сделали совсем не то...


Вот простой пример обработки проведения:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура ОбработкаПроведения(Отказ, Режим)
    
    Для Каждого СтрокаТЧ ИЗ Услуги Цикл // услуги - это табличная часть
        Если НЕ СтрокаТЧ.Номенклатура.ЭтоУслуга Тогда
            Движение = Движения.ОстаткиМатериалов.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Период = Дата;
            Движение.Склад = Склад;
            Движение.Номенклатура=СтрокаТЧ.Номенклатура;
            Движение.Количество = СтрокаТЧ.Количество;
            Движение.Сумма=СтрокаТЧ.Сумма;
        КонецЕсли;     
    КонецЦикла;
    
КонецПроцедуры
1
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
07.01.2010, 14:58  [ТС]
Спасибо, Константин. Это как раз та самая ошибка которую я не мог понять. При словах "можете удалить содержимое" я понял "очистить модуль".
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
07.01.2010, 15:01
У вас должно быть что-то на подобии этого:
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
Процедура ОбработкаПроведения(Отказ, Режим)
    
    Запрос = Новый Запрос;
    Запрос.Текст = ?(Режим = РежимПроведенияДокумента.Оперативный,  
           "ВЫБРАТЬ
           |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
           |    ОказаниеУслугиПереченьНоменклатуры.Количество,
           |    ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
           |    ОказаниеУслугиПереченьНоменклатуры.Сумма,
           |    ОстаткиМатериаловОстатки.КоличествоОстаток,
           |    СтоимостьМатериаловОстатки.СтоимостьОстаток,
           |    ОстаткиМатериаловНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
           |ИЗ
           |    Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
           |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
           |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
           |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
           |                &МоментВремени,
           |                Материал В (&СписокНоменклатурыДокумента)
           |                    И Склад = &СкладВДокументе) КАК ОстаткиМатериаловНаСкладе
           |        ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловНаСкладе.Материал
           |ГДЕ
           |    ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
           |
           |ДЛЯ ИЗМЕНЕНИЯ
           |    РегистрНакопления.ОстаткиМатериалов.Остатки,
           |    РегистрНакопления.СтоимостьМатериалов.Остатки"
                   ,
           "другой запрос");
 
// прочий текст обработки проведения
 
КонецПроцедуры
0
6 / 6 / 1
Регистрация: 27.12.2009
Сообщений: 54
07.01.2010, 15:05  [ТС]
Да, так и есть. Спасибо за помощь. Буду дальше штудировать 1с.....глядишь одним специалистом станет больше
0
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 4
22.02.2010, 19:06
Konctantin, помогите пожалуйста!!!
в Win 7 не могу работать с программой через файл 1Cv7_prtbl_027 есть ли способы наладить прграмму? для начала надо запустить конфигуратор но он не запускается ...
есть конечно официальные ключи но нойт только USB а у меня старые ключи для COM порта...
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
22.02.2010, 19:13
А пробовали запустить от имени администратора?
0
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 4
22.02.2010, 19:33
Цитата Сообщение от Konctantin Посмотреть сообщение
А пробовали запустить от имени администратора?
да, конечно и так и сяк и ...
я столкнулся еще при висте с тем что не распечатывал шрифт двоичный в формах даже не отркывал в отчетности а вот установил семерку и вообщде не запускается ни так ни сяк и драйвер encyjfdbk и новый скачалс сайта и толку...
может надо все удалить и не устанавливать драйвер?

Добавлено через 6 минут
может в аське удобней переговорить? 292963939
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2010, 19:33
Помогаю со студенческими работами здесь

Не пойму ошибку компиляции
При попытке сделать downcast в класс square дает ошибку Exception in thread &quot;main&quot; java.lang.ClassCastException: class Shape.Rectangle...

выдает ошибку не пойму почему
Parse error: syntax error, unexpected ';' in /home/a0016454/domains/loto.ru/public_html/page/selectgame.php on line 655 пробовал и так и...

Выдает ошибку. Не пойму почему
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus,...

Не пойму свою ошибку в коде
Дана квадратная матрица. Заменить предпоследнюю строку матрицы первым из столбцов, в котором находится минимальный элемент матрицы ...

Не пойму как исправить ошибку в коде
Ругается на &quot;else&quot; перед &quot;Есть синий крест&quot;. else cout &lt;&lt; &quot;Есть синий крест&quot; &lt;&lt; endl; Вот полный код. #include...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru