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

Выдает ошибку в программе 1С

11.02.2015, 07:13. Показов 7393. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Выдает ошибку:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ОказаниеУслуги.МодульОбъекта(99)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
{(6, 11)}: Временная таблица уже существует "НоменклатураДокумента"
ПОМЕСТИТЬ <<?>>НоменклатураДокумента

Помогите или подскажите что не так.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2015, 07:13
Ответы с готовыми решениями:

Найти ошибку в программе: в visual studio выдает ошибку
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() ...

выдает ошибку в программе
procedure TForm1.FormCreate(Sender: TObject); function delete (t:string):string; var...

Выдает ошибку в простой программе
не могу понять почему ошибка

Выдает ошибку в любой программе
Может я не достаточно внимателен, но посмотрите плз в чем дело. Вчера поставил ВС 2012 и теперь в...

19
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
11.02.2015, 09:04 2
Временная таблица уже существует "НоменклатураДокумента"
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 09:10  [ТС] 3
Да это понятно, но мне нужно сделать: "если мы для другого запроса укажем этот же самый менеджер временных таблиц МенеджерВТ, то в другом запросе мы сможем обратиться к данным этой временной таблицы" и так еще для третьего запроса. Как то так
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
11.02.2015, 09:11 4
уничтожай таблицу и создавай заново, раз одноименная нужна
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 09:14  [ТС] 5
Как я ее уничтожу если я ее буду использовать в 3 запросах чтобы обращаться к ним
0
286 / 186 / 18
Регистрация: 20.02.2012
Сообщений: 925
11.02.2015, 09:21 6
Не создавать врем. табл с таким же именем
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 09:23  [ТС] 7
Ладно это все понятно. Но как получилось у другого человека это? Я делаю работу по примеру, учусь так сказать
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
11.02.2015, 09:29 8
Цитата Сообщение от IOSIV Посмотреть сообщение
Как я ее уничтожу если я ее буду использовать в 3 запросах чтобы обращаться к ним
пакетные запросы: высосал данные, грохнул таблицу, доработал данные, поместил в таблицу одноименную
0
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 09:33  [ТС] 9
т.е вы хотите сказать что я должен был сначала выполнить одну обработку с МенеджероВт, потом другую и так еще третий или я не понял
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
11.02.2015, 09:36 10
и вообще, отсель не видно, как "получилось у другого человека это", не видно и что ты там "делаешь по примеру"
может проще вообще все одним запросом делать?
Пакетные запросы

Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами - таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных символом ";". Запросы исполняются один за другим. Результатом выполнения пакетного запроса в зависимости от используемого метода будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.
1
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 09:38  [ТС] 11
Кликните здесь для просмотра всего текста
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
Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать = Истина;
    Движения.Продажи.Записывать = Истина;
    МенеджерВТ = Новый МенеджерВременныхТаблиц;
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) КАК КоличествоВДокументе,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) КАК СуммаВДокументе
        |ПОМЕСТИТЬ НоменклатураДокумента
        |ИЗ
        |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
        |ГДЕ
        |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры";
        Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Результат = Запрос.Выполнить();
    
    Запрос2=Новый Запрос;
    Запрос2.МенеджерВременныхТаблиц=МенеджерВТ;
    Запрос2.Текст="ВЫБРАТЬ
                  | НоменклатураДокумента.Номенклатура,
                  | НоменклатураДокумента.ВидНоменклатуры,
                  | НоменклатураДокумента.КоличествоВДокументе,
                  | НоменклатураДокумента.СуммаВДокументе,
                  | ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
                  | ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
                  |ИЗ
                  | НоменклатураДокумента КАК НоменклатураДокумента
                  |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
                  |             ,
                  |             Материал В
                  |                 (ВЫБРАТЬ
                  |                     НоменклатураДокумента.Номенклатура
                  |                 ИЗ
                  |                     НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
                  |     ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал
                  |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
                  |             ,
                  |             Материал В
                  |                 (ВЫБРАТЬ
                  |                     НоменклатураДокумента.Номенклатура
                  |                 ИЗ
                  |                     НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
                  |     ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал";
                  Движения.СтоимостьМатериалов.Записать();
                  Движения.ОстаткиМатериалов.Записать();
                  Результат = Запрос2.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ВыборкаДетальныеЗаписи.Количество=0 Тогда
         СтоимостьМатериала=0;
    Иначе
         СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость
/ВыборкаДетальныеЗаписи. Количество;
КонецЕсли;
    
    
 
Если  ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
// регистр ОстаткиМатериалов Расход
    Движение = Движения.ОстаткиМатериалов.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Материал =  ВыборкаДетальныеЗаписи.Номенклатура;
    Движение.Склад = Склад;
    Движение.Количество =  ВыборкаДетальныеЗаписи.КоличествоВДокументе;
 
// регистр СтоимостьМатериалов Расход
    Движение = Движения.СтоимостьМатериалов.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
    Движение.Период = Дата;
    Движение.Материал =  ВыборкаДетальныеЗаписи.Номенклатура;
    Движение.Стоимость =  ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;
КонецЕсли;
 
//Регистр Продажи
    Движение = Движения.Продажи.Добавить();
    Движение.Период = Дата;
    Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
    Движение.Клиент = Клиент;
    Движение.Мастер = Мастер;
    Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
    Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;
    Движение.Стоимость = СтоимостьМатериала * ВыборкаДетальныеЗаписи.КоличествоВДокументе;
    Движения.СтоимостьМатериалов.БлокироватьДляИзменения=Истина;
    Движения.ОстаткиМатериалов.БлокироватьДляИзменения=Истина;
    движения.СтоимостьМатериалов.Записать();
    Движения.ОстаткиМатериалов.Записать();
    Результат = Запрос.Выполнить();
 
КонецЦикла;
    Движения.Записать();
    Если Режим = РежимПроведенияДокумента.Оперативный Тогда
        Запрос3 = Новый Запрос;
        Запрос3.МенеджерВременныхТаблиц=МенеджерВТ;
        Запрос3.Текст="ВЫБРАТЬ
                      | ОстаткиМатериаловОстатки.Материал,
                      | ОстаткиМатериаловОстатки.КоличествоОстаток
                      |ИЗ
                      | РегистрНакопления.ОстаткиМатериалов.Остатки(
                      |         ,
                      |         Материал В
                      |                 (ВЫБРАТЬ
                      |                     НоменклатураДокумента.Номенклатура
                      |                 ИЗ
                      |                     НоменклатураДокумента)
                      |             И Склад = &Склад) КАК ОстаткиМатериаловОстатки
                      |ГДЕ
                      | ОстаткиМатериаловОстатки.КоличествоОстаток < 0";
        Запрос3.УстановитьПараметр("Склад", Склад);
        Результат = Запрос3.Выполнить();
    КонецЕсли;
        ВыборкаДетальныеЗаписи = Результат.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
            Сообщение = Новый СообщениеПользователю();
            Сообщение.Текст = "Не хватает" + Строка(-ВыборкаДетальныеЗаписи.Количество) + "едениц материала""" + ВыборкаДетальныеЗаписи.Материал + """";
            Сообщение.Сообщить();
            Отказ = Истина;
        КонецЦикла;
        
КонецПроцедуры

Вот что я пытаюсь сделать
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
11.02.2015, 10:10 12
как то так:
Кликните здесь для просмотра всего текста
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
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Релизы.Ссылка,
                   |    Релизы.ДатаРелиза
                   |ПОМЕСТИТЬ ВТ
                   |ИЗ
                   |    Справочник.Релизы КАК Релизы
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ВТ.Ссылка,
                   |    ВТ.ДатаРелиза
                   |ИЗ
                   |    ВТ КАК ВТ"; 
    выб = Запрос.Выполнить().Выбрать();
    Пока выб.Следующий() Цикл
        
    КонецЦикла;
//не плодя запросов используем тот же, меняем текст, параметры (МВТ гонять туда-сюда не надо)      
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВТ.Ссылка,
                   |    ВТ.ДатаРелиза
                   |ИЗ
                   |    ВТ КАК ВТ";
    выб = Запрос.Выполнить().Выбрать();
    Пока выб.Следующий() Цикл
        
    КонецЦикла;
1
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 10:30  [ТС] 13
Большое спасибо, попробую что получится.

Добавлено через 14 минут
Ах, да можно задать вопрос, но уже не по этой теме: Можно выгрузить таблицы или отчеты, информацию из 1С в Excel, так чтобы данные так сказать выгрузились в соответствующие колонки. Например: так чтобы ФИО из 1С выгрузилось в таблицу Excel и так с другими колонками и информацией
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
11.02.2015, 10:44 14
можно
Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
ExcelПриложение = Новый COMОбъект("Excel.Application");
     Книга = ExcelПриложение.WorkBooks.Add();
     Лист = Книга.WorkSheets(1);
     Лист.Cells(1, 1).Value = "Фамилия";
     Лист.Cells(1, 2).Value = "Имя";
     Лист.Cells(1, 3).Value = "Отчество";
 
     ФайлНаДиске = Новый Файл(Путь + "айл.xlsx");
     ExcelПриложение.DisplayAlerts = False;
     Книга.SaveAs(ФайлНаДиске.ПолноеИмя);
     ExcelПриложение.ActiveWorkbook.Close();
     ExcelПриложение.Quit();
1
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 10:49  [ТС] 15
Спасибо, попробую
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.02.2015, 10:49 16
IOSIV, последний код (#11) должен работать.
Цитата Сообщение от IOSIV Посмотреть сообщение
информацию из 1С в Excel
1. копипастой, например.
2. "Сохранить как..." хлс
3. Совсем офигеть и напейсать программное заполнение через com/ole. Как открыть ёксель в 1С и кропать на басике - в разделе просто море постов.
1
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 10:57  [ТС] 17
Копированием мне не подойдет мне надо чтобы процесс был автоматизирован, чтобы человечек клацнул на кнопку и у него уже вся таблица "перенеслась" из 1С в Excel
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.02.2015, 11:30 18
1C
1
ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS);
ТабДок можно не показывать. А возюкаться с оле с ячейками - ну, это дело вкуса и уровня мазохизма.
Поискать по разделу "1С" фрагменты на бэйсике и инициализацию ёкселя.

Добавлено через 11 минут
Как спросить. Подразделы. Удалённый доступ. Импорт (и прочие факи)
1
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
11.02.2015, 11:48 19
Немного добавлю

1C
1
2
ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS);
ЗапуститьПриложение(ИмяФайла);
1
0 / 0 / 0
Регистрация: 18.08.2014
Сообщений: 115
11.02.2015, 12:07  [ТС] 20
Мне еще расти и расти до вас
0
11.02.2015, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2015, 12:07
Помогаю со студенческими работами здесь

Pascal выдает ошибку в программе
В чем заключается ошибка и как ее исправить ? Все говорят ,что ее тут вроде бы и нет. Я написал...

что не так в программе, выдает ошибку...
помогите разобраться, пожалуйста, что не так?

в программе С++ выдает ошибку, не могу разобраться.
#include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;windows.h&gt; void RusVivod(char RusText); ...

Делфи выдает ошибку в программе на массивы
Здравствуйте! Помогите, пожалуйста. Задачка: Задан массив Х1,Х2..Хn. Получить массив С1,С2,..Cn по...

Выдает ошибку в программе,что не правильно я прописал
Ввести массив F.Найти сумму элементов введенного массива, кратных числу 3. Помогите пожалуйсто...

выдает ошибку в простейшей программе, что не так?
//--------------------------------------------------------------------------- #pragma hdrstop...


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

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