С Новым годом! Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
1 / 1 / 1
Регистрация: 11.04.2018
Сообщений: 45
1

Радченко. Практическое пособие

17.11.2019, 17:25. Показов 5394. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, уважаемые программисты!

По учебе нужно сделать базу по учебному пособию Радченко М.Г., Хрусталева Е.Ю. - 1С:Предприятие 8.3. Практическое пособие разработчика. Дошла до 15 занятия. Не получается сделать документ Оказание услуг (подкорректировать его как пишется в книге).
Выходит ошибка, текст которой представлен ниже. Почему может выходить такая ошибка?

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ОказаниеУслуг.МодульОбъекта(44)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить(); //создаётся виртуальная таблица
по причине:
{(9, 2)}: Таблица не найдена "Документ.ОказаниеУслуги.ПереченьНоменклатуры"
<<?>>Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатур

Также демонстрирую код (но сделала все исключительно по учебнику вплоть до названий):
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр ОстаткиМатериалов Расход
    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать=Истина;
    Движения.Продажи.Записывать=Истина;
 
    
    //Создать менеджер временных таблиц.
    МенеджерВТ=Новый МенеджерВременныхТаблиц;
    
    
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    Запрос = Новый Запрос;
    //Укажем, какой менеджер временных таблиц использует этот запрос.
    Запрос.МенеджерВременныхТаблиц=МенеджерВТ;
    
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
        |   ОказаниеУслугиПереченьНоменклатуры.НаборСвойств,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
        |ПОМЕСТИТЬ НоменклатураДокумента
        |ИЗ
        |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
        |ГДЕ
        |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры,
        |   ОказаниеУслугиПереченьНоменклатуры.НаборСвойств";
 
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
 
    Результат = Запрос.Выполнить();  //создаётся виртуальная таблица
    
    Запрос2=Новый Запрос;
    Запрос2.МенеджерВременныхТаблиц=МенеджерВТ;
    Запрос2.Текст="ВЫБРАТЬ
                  | НоменклатураДокумента.Номенклатура,
                  | НоменклатураДокумента.ВидНоменклатуры,
                  | НоменклатураДокумента.НаборСвойств,
                  | НоменклатураДокумента.КоличествоВДокументе,
                  | НоменклатураДокумента.СуммаВДокументе,
                  | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
                  | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
                  |ИЗ
                  | НоменклатураДокумента КАК НоменклатураДокумента
                  |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
                  |             ,
                  |             Материал В
                  |                 (ВЫБРАТЬ
                  |                     НоменклатураДокумента.Номенклатура
                  |                 ИЗ
                  |                     НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
                  |     ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал
                  |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
                  |             ,
                  |             Материал В
                  |                 (ВЫБРАТЬ
                  |                     НоменклатураДокумента.Номенклатура
                  |                 ИЗ
                  |                     НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
                  |     ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал";
 
    //Установим необходимость блокировки данных в регистрах
    //СтоимостьМатериалов и ОстаткиМатериалов
    Движения.СтоимостьМатериалов.БлокироватьДляИзменения=Истина;
    Движения.ОстаткиМатериалов.БлокироватьДляИзменения=Истина;
                  
    //Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе
    Движения.СтоимостьМатериалов.Записать();
    Движения.ОстаткиМатериалов.Записать();
                  
    Результат=Запрос2.Выполнить();
    //ТЗ=Результат.Выгрузить();
    
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать(); 
 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Если ВыборкаДетальныеЗаписи.Количество=0 Тогда
            СтоимостьМатериала=0;
        Иначе
            СтоимсотьМатериала=ВыборкаДетальныеЗаписи.Стоимость/ВыборкаДетальныеЗаписи.Количество;
        КонецЕсли;
        
        Если ВыборкаДетальныеЗаписи.ВидНоменклатуры=Перечисления.ВидыНоменклатуры.Материал Тогда
            //регистр ОстаткиМатериалов Расход
        Движение = Движения.ОстаткиМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.НаборСвойств = ВыборкаДетальныеЗаписи.НаборСвойств;
        Движение.Склад = Склад;
        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
        
        //регистр СтоимостьМатериалов Расход
        
        Движение=Движения.СтоимостьМатериалов.Добавить();
        Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
        Движение.Период=Дата;
        Движение.Материал=ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Стоимость=ВыборкаДетальныеЗаписи.КоличествоВДокументе*СтоимостьМатериала;
    
    КонецЕсли;     
    
    //Регистр Продажи
    Движение=Движения.Продажи.Добавить();
    Движение.Период=Дата;
    Движение.Номенклатура=ВыборкаДетальныеЗаписи.Номенклатура;
    Движение.Клиент=Клиент;
    Движение.Мастер=Мастер;
    Движение.Количество=ВыборкаДетальныеЗаписи.КоличествоВДокументе;
    Движение.Выручка=ВыборкаДетальныеЗаписи.СуммаВДокументе;
    Движение.Стоимость=СтоимостьМатериала*ВыборкаДетальныеЗаписи.КоличествоВДокументе;
                
    КонецЦикла;
    
    Движения.Записать();
    Если Режим=РежимПроведенияДокумента.Оперативный Тогда
        //проверить отрицательные остатки
        Запрос3=Новый Запрос;
        Запрос3.МенеджерВременныхТаблиц=МенеджерВТ;
        Запрос3.Текст="ВЫБРАТЬ
                      | ОстаткиМатериаловОстатки.Материал,
                      | ОстаткиМатериаловОстатки.НаборСвойств,
                      | ОстаткиМатериаловОстатки.КоличествоОстаток
                      |ИЗ
                      | РегистрНакопления.ОстаткиМатериалов.Остатки(
                      |         ,
                      |         (Материал, НаборСвойств) В
                      |                 (ВЫБРАТЬ
                      |                     НоменклатураДокумента.Номенклатура,
                      |                     НоменклатураДокумента.НаборСвойств
                      |                 ИЗ
                      |                     НоменклатураДокумента)
                      |             И Склад = &Склад) КАК ОстаткиМатериаловОстатки
                      |ГДЕ
                      | ОстаткиМатериаловОстатки.КоличествоОстаток < 0";
        Запрос3.УстановитьПараметр("Склад",Склад);
        Результат=Запрос3.Выполнить();
        ВыборкаДетальныеЗаписи=Результат.Выбрать();
        
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Сообщение=Новый СообщениеПользователю();
            Сообщение.Текст="Не хватает"+Строка(-ВыборкаДетальныеЗаписи.КоличествоОстаток)+" единиц материала"""+ВыборкаДетальныеЗаписи.Материал+"""";
            Сообщение.Сообщить();
            Отказ=Истина;
        КонецЦикла;
        
    КонецЕсли;
    
КонецПроцедуры
Добавлено через 36 минут
Предыдущую проблему я решила, но теперь выходит другая ошибка:

{Документ.ОказаниеУслуг.МодульОбъекта(120)}: Преобразование значения к типу Число не может быть выполнено Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2019, 17:25
Ответы с готовыми решениями:

Радченко. Практическое пособие
Очень нужна готовая программа по этой книге? &quot;радченко хрусталева 1с предприятие 8.2 практическое...

Задания по книге "1с практическое пособие разработчика"
Здравствуйте, выполняю задания по книге практическое пособие разработчика. Помогите, пожалуйста...

1c Радченко
Учу 1с (ну пытаюсь хоть что то разобрать) писал по книге глобальный модуль (1с 8.3, но в книге...

Google AdSense (часть 2): практическое пособие
Владельцы сайтов, как впрочем и Google, заинтересованы в максимизации прибыли. Поэтому существует...

3
Модератор
2296 / 839 / 244
Регистрация: 22.04.2013
Сообщений: 6,165
Записей в блоге: 1
17.11.2019, 22:49 2
ну напишите
1C
1
2
Сообщить(ТипЗнч(ВыборкаДетальныеЗаписи.КоличествоВДокументе);
Сообщить(ТипЗнч(СтоимостьМатериала);
посмотрите, что у вас не число

а вообще правила гласят, что один вопрос === один топик. не надо задавать сто вопросов в одной теме
0
3031 / 1584 / 576
Регистрация: 16.01.2015
Сообщений: 6,739
17.11.2019, 23:42 3
Лучший ответ Сообщение было отмечено valery7 как решение

Решение

Цитата Сообщение от valery7 Посмотреть сообщение
СтоимсотьМатериала=ВыборкаДетальныеЗаписи.Стоимость/ВыборкаДетальныеЗаписи.Количество;
Сравните с
Цитата Сообщение от valery7 Посмотреть сообщение
Движение.Стоимость=ВыборкаДетальныеЗаписи.КоличествоВДокументе*СтоимостьМатериал а;
Тупо простая орфография
1
1 / 1 / 1
Регистрация: 11.04.2018
Сообщений: 45
18.11.2019, 12:17  [ТС] 4
polax, Благодарю. Не внимательна была.
0
18.11.2019, 12:17
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2019, 12:17
Помогаю со студенческими работами здесь

Премия в 18 задании по Радченко
Здравствуйте, я начинаю учиться работать с 1С версии 8.3 по учебнику Радченко. Дошел до 18 задания...

Ошибка в 18 задании по Радченко
Здравствуйте, я начинаю учиться работать с 1С версии 8.3 по учебнику Радченко. Дошел до 18 задания...

Готовая учебная база по Радченко
Ребят, есть у кого выгрузка базы готовая и частично ООО &quot;мастер на все руки&quot; по пособию Радченко,...

Перерасчет оклада по практич. пособию Радченко
Пытаюсь сформировать отчет о перерасчете оклада по книге Радченко и ничего не получается, изменял...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 07.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru