Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.09.2018
Сообщений: 1
1

Ошибка при выполнении себестоимости!

28.09.2018, 08:56. Показов 755. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Помогите пожалуйста разобраться.

При запуске Списание себестоимости когда нажимаю Выполнить списание выдает вот такую ошибку:

Ошибка при выполнении себестоимости!


Ошибка при выполнении себестоимости!


версия 1с Предприятие 8.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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
Функция СписатьСебестоимость(ДокументСсылка) Экспорт
    
    РезультатФункции = Истина;
    
    НачатьТранзакцию(
        РежимУправленияБлокировкойДанных.Управляемый);
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПродажаТоваров.Дата,
                   |    ПродажаТоваров.Склад
                   |ИЗ
                   |    Документ.ПродажаТоваров КАК ПродажаТоваров
                   |ГДЕ
                   |    ПродажаТоваров.Ссылка = &Ссылка";
                   
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
    УчетнаяПолитика = РегистрыСведений.УчетнаяПолитика.
        ПолучитьПоследнее(Шапка.Дата);
        
    СпособСписания = УчетнаяПолитика.
        СпособСписанияСебестоимости;
        
    ТекстЗапросаПорядок = "";    
    
    Если СпособСписания = 
        Перечисления.СпособыСписанияСебестоимости.ЛИФО Тогда
        
        ТекстЗапросаПорядок = " УБЫВ";
    КонецЕсли;
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПродажаТоваров.Склад,
                   |    ПродажаТоваровТовары.Номенклатура
                   |ИЗ
                   |    Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПродажаТоваров КАК ПродажаТоваров
                   |        ПО ПродажаТоваровТовары.Ссылка = ПродажаТоваров.Ссылка
                   |ГДЕ
                   |    ПродажаТоваров.Ссылка = &Ссылка";
                   
    ДанныеБлокировки = Запрос.Выполнить().Выгрузить();               
    
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить(
        "РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = 
        РежимБлокировкиДанных.Исключительный;    
        
    ЭлементБлокировки.ИсточникДанных = 
        ДанныеБлокировки;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(
        "Номенклатура", "Номенклатура");
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(
        "Склад", "Склад");
        
    Блокировка.Заблокировать();    
    
    НаборЗаписей = РегистрыНакопления.
        ОстаткиНоменклатуры.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(
        ДокументСсылка);
    
    НаборЗаписей.Записать();
        
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ПродажаТоваровТовары.Номенклатура КАК Номенклатура,
        |    СУММА(ПродажаТоваровТовары.Количество) КАК Количество,
        |    МИНИМУМ(ПродажаТоваровТовары.НомерСтроки) КАК НомерСтроки
        |ПОМЕСТИТЬ ТаблицаДокумента
        |ИЗ
        |    Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
        |ГДЕ
        |    ПродажаТоваровТовары.Ссылка = &Ссылка
        |    И ПродажаТоваровТовары.Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ВидыТоваров.Товар)
        |
        |СГРУППИРОВАТЬ ПО
        |    ПродажаТоваровТовары.Номенклатура
        |
        |ИНДЕКСИРОВАТЬ ПО
        |    Номенклатура
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ТаблицаДокумента.Номенклатура КАК Номенклатура,
        |    ТаблицаДокумента.Количество КАК Количество,
        |    ТаблицаДокумента.НомерСтроки КАК НомерСтроки,
        |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
        |    ОстаткиНоменклатурыОстатки.Партия,
        |   ЕСТЬNULL(БронированиеТоваровОстатки.КоличествоОстаток, 0) КАК КоличествоОстатокЗабронировано
        |ИЗ
        |    ТаблицаДокумента КАК ТаблицаДокумента
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.БронированиеТоваров.Остатки(
        |                &МоментДокумента,
        |                Склад = &Склад
        |                    И Номенклатура В
        |                        (ВЫБРАТЬ
        |                            ТаблицаДокумента.Номенклатура
        |                        ИЗ
        |                            ТаблицаДокумента КАК ТаблицаДокумента)) КАК БронированиеТоваровОстатки
        |        ПО ТаблицаДокумента.Номенклатура = БронированиеТоваровОстатки.Номенклатура
        |
        |УПОРЯДОЧИТЬ ПО
        |    ОстаткиНоменклатурыОстатки.Партия.МоментВремени" + ТекстЗапросаПорядок + "
        |ИТОГИ
        |    МАКСИМУМ(Количество),
        |    МАКСИМУМ(НомерСтроки),
        |    СУММА(КоличествоОстаток)
        |ПО
        |    Номенклатура";
 
        
    Запрос.УстановитьПараметр("МоментДокумента", 
        ДокументСсылка.МоментВремени());
            
    Запрос.УстановитьПараметр("Склад", Шапка.Склад);
    Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
 
    РезультатЗапроса = Запрос.Выполнить();
 
    ВыборкаПоНоменклатуре = РезультатЗапроса.Выбрать(
        ОбходРезультатаЗапроса.ПоГруппировкам);
 
    Пока ВыборкаПоНоменклатуре.Следующий() Цикл
    
        
        Если ВыборкаПоНоменклатуре.Количество > 
            ВыборкаПоНоменклатуре.КоличествоОстаток Тогда
            
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Остатка товара "
                            + ВыборкаПоНоменклатуре.Номенклатура
                            + " недостаточно. В документе: "
                            + ВыборкаПоНоменклатуре.Количество
                            + " ед., остаток: "
                            + ВыборкаПоНоменклатуре.КоличествоОстаток
                            + " ед. ";
                                
            Сообщение.Сообщить();
            
            РезультатФункции = Ложь;
                            
        Иначе
            
            ТребуетсяСписать = 
                ВыборкаПоНоменклатуре.Количество();    
                
            Выборка = ВыборкаПоНоменклатуре.Выбрать();
            
            Пока Выборка.Следующий() Цикл
                
                Если Выборка.КоличествоОстаток <= 
                    ТребуетсяСписать Тогда
                    
                КоличествоСписания = Выборка.КоличествоОстаток;
                СуммаСписания = Выборка.СуммаОстаток;
                ТребуетсяСписать = ТребуетсяСписать
                    - КоличествоСписания;
 
                
            Иначе
                
                КоличествоСписания = ТребуетсяСписать;
                СуммаСписания = Выборка.СуммаОстаток /
                    Выборка.КоличествоОстаток * 
                    КоличествоСписания;
                ТребуетсяСписать = 0;
 
            КонецЕсли;
            
            Движение = НаборЗаписей.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Период = Шапка.Дата;
            Движение.Номенклатура = Выборка.Номенклатура;
            Движение.Склад = Шапка.Склад;
            Движение.Количество = КоличествоСписания;
            Движение.Сумма = СуммаСписания;
            Движение.Партия = Выборка.Партия;
            
            Если ТребуетсяСписать = 0 Тогда
                Прервать;
            КонецЕсли;
            
        КонецЦикла;    
                
        
    КонецЕсли;
            
 КонецЦикла;
 
 НаборЗаписей.Записать();
 
 ЗафиксироватьТранзакцию();
 
 Возврат РезультатФункции;
 
КонецФункции
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2018, 08:56
Ответы с готовыми решениями:

Невосстановимая ошибка Ошибка при выполнении запроса POST
Невосстановимая ошибка Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm: по причине:...

Ошибка при выполнении файловой операции УНФ
1С:Предприятие 8.3 (8.3.10.2580), УНФ. Режим веб-сервер, приложение - тонкий клиент. При загрузке...

Ошибка при выполнении операции с информационной базой
обработка меняет данные в справочнике основные средства УПП лезет в эксель, ищет по инв номеру и...

Ошибка при выполнении запроса: Поле не найдено
Всем снова привет!:) Написала запрос, казалось бы простенький. Но выдает ошибку... Не могу...

5
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
28.09.2018, 10:36 2
makleyss654, вы запросы вручную пишете, а не конструктором запроса? Советую поменять подход на начальных этапах и вручную ничего не править.
По тексту запроса: у вас в итоговом запросе, судя по полям, должно быть три таблицы: БронированиеТоваровОстатки, ОстаткиНоменклатурыОстатки и ТаблицаДокумента, но в соединении только две: БронированиеТоваровОстатки и ТаблицаДокумента.
Посмотрите, какие именно таблицы у вас реально существуют и измените запрос.
Для подробных инструкций: выложите конфигурацию.
0
polax
28.09.2018, 17:14
  #3

Не по теме:

GreenkA, С возвращением или так, забежала просто? Скучаем ))). И...как модератор код поправь ТС на 1С, читается с трудом

0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
28.09.2018, 18:29 4
Цитата Сообщение от polax Посмотреть сообщение
как модератор код поправь ТС на 1С
вернулась
Но пока не модератор, код править не могу)
Я тоже скучала
0
polax
28.09.2018, 18:32
  #5

Не по теме:

GreenkA, Честно? УРАААААААААААААААААААААА!!! Гринка вернуулааась!!! "Теперь мы в два раза больше сена для нашей коровки заготовим" ©

0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
28.09.2018, 18:35 6
polax, ой, я тя обожаю
0
28.09.2018, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2018, 18:35
Помогаю со студенческими работами здесь

ошибка при выполнении модуля завершить работу системы
здравствуйте , при загрузке 1с предприятие 77 появляется &quot;&quot;ошибка при выполнении модуля завершить...

Ошибка при выполнении запроса к таблице остатков регистра накопления
Код функции запроса остатка Функция ПолучитьТоварОстаток(АктуальнаяДата, СправочникСклад,...

Обновление внешних печатных форм. Ошибка при выполнении запроса: неверные параметры.
У клиента прошло обновление баз на фреше, требуется обновить внешние печатные формы. Задача в...

Расчет себестоимости при закрытии месяца
Добрый день. При закрытии месяца возникает ошибка расчета себестоимости. По номенклатуре Икра...

Ошибка при выполнении
Новичок в изучении 1С Ошибка: {ОбщийМодуль.РаботаСоСправочниками.Модуль(6)}: Ошибка при вызове...

Ошибка при выполнении запроса
Объясните, пжлст, ошибку при выполнении запроса и возможные пути исправления: ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru