|
v8: Помогите разобраться с ошибкой | ☑ | ||
---|---|---|---|---|
0
demous
17.01.12
✎
15:23
|
упп 8.1
Ошибка {Обработка.П_Декларация6.Форма.Форма(535)}: Ошибка при вызове метода контекста (Первая): Перед выполнением операции нужно открыть базу ФайлПр.Первая(); по причине: Перед выполнением операции нужно открыть базу вот эта процедурка Процедура Проц(ФайлПр) ЗапросТабл = Новый Запрос; Текст = "ВЫБРАТЬ | Номенклатура.Наименование, | Номенклатура.К_КодПродукции.Наименование, | Номенклатура.К_КодПродукции.КодПродукции |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В(&СпПрод)"; ЗапросТабл.Текст = Текст; ЗапросТабл.УстановитьПараметр("СпПрод",СпПрод); Результат = ЗапросТабл.Выполнить(); //ТЗ = Результат.Выгрузить(); //ТЗ.Свернуть("Наименование,Группа,НаименованиеРег,СтранаПроисхождения,ГосРегДата,ГосРегКод"); // Сп=Новый СписокЗначений; ФайлПр.Первая(); Пока не ФайлПр.ВКонце() Цикл Сп.Добавить(СокрЛП(ФайлПр.PROD_NAME)); ФайлПр.Следующая(); КонецЦикла; Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока Выборка.Следующий() Цикл Если не Сп.НайтиПоЗначению(СокрЛП(Выборка.Наименование))=Неопределено тогда Продолжить; КонецЕсли; //Для Каждого Выборка Из ТЗ Цикл // Если Выборка.Наименование <> "" тогда ФайлПр.Добавить(); ФайлПр.PROD_NAME = Выборка.Наименование; ФайлПр.GOST = "#"; ФайлПр.PROD_KOD = Выборка.К_КодПродукцииКодПродукции; ФайлПр.PROD_GROUP = Выборка.К_КодПродукцииНаименование; ФайлПр.REG_UDOST = ""; ФайлПр.PROISHOZHD = "КРД"; ФайлПр.REG_DATE = ""; ФайлПр.REG_NOM = ""; ФайлПр.Записать(); // КонецЕсли; КонецЦикла; ФайлПр.ЗакрытьФайл(); КонецПроцедуры // Проц() |
|||
1
Rie
17.01.12
✎
15:25
|
(0) В сообщении об ошибке всё и написано: перед тем, как обращаться к методу Первая, нужно Открыть() базу ФайлПр.
В тексте процедуры эту базу никто не открывает. Видимо, и перед вызовом процедуры её никто не открыл. |
|||
2
demous
17.01.12
✎
15:27
|
программа с базой данной находится в открытом состоянии(((
|
|||
3
Adilgeriy
17.01.12
✎
15:27
|
платформа какая?
|
|||
4
demous
17.01.12
✎
15:31
|
1С Предприятие 8.1 (8.1.15.14)
УПП 8.1 (1.2.36.1) |
|||
5
Rie
17.01.12
✎
15:38
|
(2) C _какой_ базой? Насколько я понял, ФайлПр - это объект XBase.
|
|||
6
demous
17.01.12
✎
15:38
|
ни кто не знает?
могу обработку полностью скинуть, помогите пожалуйста...((( |
|||
7
Rie
17.01.12
✎
15:39
|
(6) Покажи то место, откуда _вызывается_ эта процедура Проц.
|
|||
8
demous
17.01.12
✎
15:39
|
есть такая программа - Декларирование производства и оборота алкогольной продукции, в ней хранятся dbf файлы в которые и происходит выгрузка
|
|||
9
demous
17.01.12
✎
15:42
|
Функция Загрузить(ФайлБТ, ФайлПР)
ФайлБТ = Новый XBase; ОткрытьФайлБТ(ФайлБТ); Если ОчиститьБД тогда Очистить(ФайлБТ); КонецЕсли; ЗаписатьВФайлБТ(ФайлБТ, ФайлПр); ФайлБТ.ЗакрытьФайл(); ФайлПр = Новый XBase; ОткрытьФайлПр(ФайлПр); Если ОчиститьПродукция тогда ОчиститьПр(ФайлПр); КонецЕсли; Проц(ФайлПр); //ТаблицаЗначений(ФайлБТ, ФайлПр); ФайлПр.ЗакрытьФайл(); // ФайлКонтр = Новый XBase; ОткрытьФайлКонтр(ФайлКонтр); Если ОчиститьКонтр тогда ОчиститьФайлКонтр(ФайлКонтр); КонецЕсли; Проц2(ФайлКонтр); ФайлКонтр.ЗакрытьФайл(); КонецФункции // Загрузить() |
|||
10
demous
17.01.12
✎
15:42
|
вот в середине
|
|||
11
MatrosoV AleXXXand_R
17.01.12
✎
15:44
|
Закрыть базу данных
|
|||
12
demous
17.01.12
✎
15:47
|
При закрытой программе вылетает ошибка которая описанна вначале темы
|
|||
13
demous
17.01.12
✎
15:52
|
????
|
|||
14
demous
17.01.12
✎
15:57
|
Весь день сижу разобраться не могу(((
|
|||
15
1398
17.01.12
✎
16:06
|
уже в (1) все же подробно написали... прежде, чем будет работать "ФайлПр.Первая();" где-то ранее должен отработать "ФайлПр.ОткрытьФайл(ИмяФайла);" где ИмяФайла - это путь к файлу
видимо в ОткрытьФайлБТ(...) - этого не происходит по каким-то причинам |
|||
16
1398
17.01.12
✎
16:07
|
(0) если не секрет, а где в УПП эта выгрузка в программу учета алкоголя?
|
|||
17
demous
17.01.12
✎
16:10
|
это ВПФ, писалась не знаю кем(
|
|||
18
demous
17.01.12
✎
16:10
|
но еще в октябре когда делали за 3 квартал отчетность, все работало...
|
|||
19
БалбесВ1с
17.01.12
✎
16:12
|
(18)Может пути сменились к файлам?
|
|||
20
demous
17.01.12
✎
16:13
|
Функция ОткрытьФайлПр(ФайлПр)
ФайлПр.Кодировка = КодировкаXBase.OEM; ИмяФайлаБазы2 = ""+Путь+"\PRODUCTS.DBF"; ФайлПр.ОткрытьФайл(ИмяФайлаБазы2); КонецФункции // ОткрытьФайлПр() |
|||
21
demous
17.01.12
✎
16:14
|
я как бы прописываю в путь, не конкретно файл, а каталог содержащий файлы, строка путь пуста, для того чтобы за каждый квартал создавать новые каталоги
|
|||
22
Rie
17.01.12
✎
16:16
|
(20) После
ФайлПр.ОткрытьФайл(ИмяФайлаБазы2); проверь, что база - действительно открылась, то есть ФайлПр.Открыта() имеет значение Истина. (это можно посмотреть даже Отладчиком). (21) Новый квартал - новый каталог? Он создан? В нём есть нужные файлы? |
|||
23
demous
17.01.12
✎
16:18
|
тогда происходит выгрузка, но файлы остаются пустыми... ( дата изменения файла показует что файл был задействован)
когда конкретно к файлу путь указываю, тогда ошибка которая в начале |
|||
24
demous
17.01.12
✎
16:19
|
Новый каталог создан, в нем есть все файлы с нужной структурой, к нему прописан путь
как мне отладчиком посмотреть значение процедуры? |
|||
25
БалбесВ1с
17.01.12
✎
16:20
|
(0)Ещё возможен вариант нет прав на создание или изменение файла в данном каталоге.Также учти что нельзя (по умолчанию) создать на 2008 сервере файл в корне диска.
|
|||
26
1398
17.01.12
✎
16:21
|
имхо - (18) прав, скорее всего. Посмотри в отладчике значение переменной Путь (может, диск какой-то отвалился).
Теоретически, может ещё быть, что файл открыть не получается из-за того, что осталось висеть соединение с ним (например - был открыт при предыдущем запуске и п каким-то причинам не был закрыт). Из всем доступных средств тут помогает перезагрузка того компа, на котором расположена база той программы для алкоголиков. |
|||
27
demous
17.01.12
✎
16:22
|
Права Полные
каталог создан не в корне, а на сервере |
|||
28
demous
17.01.12
✎
16:24
|
база той программы для алкоголиков. - это сервер) программа тоже на сервере, точнее сказать папка с программой и является каталогом, в ней и хранятся эти файлы бд
|
|||
29
Rie
17.01.12
✎
16:24
|
(24) Запустить 1С в отладочном режиме.
F9 - поставить точку останова. Shift-F9 - вычислить выражение. (27) Не права 1С, а права пользователя Windows на файл. |
|||
30
БалбесВ1с
17.01.12
✎
16:24
|
Вот так я узнал что у меня нет прав )
Если Не ФайлБТ.Открыта() Тогда Сообщить ("Нет доступа к серверу !"); Отказ=Истина; КонецЕсли; |
|||
31
demous
17.01.12
✎
16:34
|
http://rghost.ru/35952021 вот сама обработка....
права имеются( |
|||
32
1398
17.01.12
✎
16:36
|
(31) Сколько готов заплатить?
|
|||
33
demous
17.01.12
✎
16:37
|
а на добровольной основе помощь тут не оказывают( просто три месяца как учу 1с только(((
|
|||
34
alxxsssar
17.01.12
✎
16:38
|
прав нет сто пудов на файл или папку какую-то. смотри текущего пользователя в системе
|
|||
35
alxxsssar
17.01.12
✎
16:39
|
+(34) или в прописанной папке файл удалили/переименовали, или папку удалили. пути проверь
|
|||
36
demous
17.01.12
✎
16:40
|
папка есть, файл есть, сто раз переписывал путь, права тоже имеются и в 1с и в системе(((
|
|||
37
Rie
17.01.12
✎
16:41
|
(33) Бесплатная помощь уже оказана в этой ветке.
(Но дело, скорее всего, не в обработке. Проверяй наличие файлов/каталогов и прав на них (проверяй, а не просто "права есть")). |
|||
38
Rie
17.01.12
✎
16:41
|
(36) Как проверял наличие прав?
|
|||
39
Rie
17.01.12
✎
16:42
|
+(38) (имеются в виду права на файлы).
|
|||
40
demous
17.01.12
✎
16:43
|
сначала все делалось с моего компа, под моими данными, потом все делалось с компа и под пользователем того человека который делал это все с 2007 года, потом под админом системы
|
|||
41
demous
17.01.12
✎
16:43
|
я благодарен что уделяете время помощи мне!
|
|||
42
Rie
17.01.12
✎
16:44
|
(40) _Посмотри_ права на файлы. На сервере - правой кнопкой мыши по файлу/папке и вкладки "Доступ" и "Безопасность".
|
|||
43
Rie
17.01.12
✎
16:45
|
+(42) Или просто попробуй открыть (например, Excel'ем) тот файл.
|
|||
44
hhhh
17.01.12
✎
16:45
|
(36) еще бывает прикол, стоит галочка в верхней папке "Распространять на все дочерние папки". Смотришь, вроде права есть, но если на родительскую папку прав нет, то ничего не получается.
|
|||
45
demous
17.01.12
✎
16:47
|
полный доступ- изменение - чтение - файлы открываются на папки тоже доступ есть
|
|||
46
CrazyBear
17.01.12
✎
16:51
|
Если ОчиститьПродукция тогда
ОчиститьПр(ФайлПр); КонецЕсли; А что у тебя в процедуре "ОчиститьПр" делается? может ты его просто убиваешь там? |
|||
47
demous
17.01.12
✎
16:54
|
поставил галочку на очистку
{Обработка.П_Декларация6.Форма.Форма(511)}: Ошибка при вызове метода контекста (ОчиститьФайл): Перед выполнением операции нужно открыть базу ФайлПр.ОчиститьФайл(); |
|||
48
Rie
17.01.12
✎
16:59
|
(47) У тебя НЕ открыт XBase-файл. Стало быть, задача - выяснить, почему он не открыт.
Варианты: он НЕ открывается при ФайлПр.Открыть() - чтобы проверить это, надо поставить точку останова на ФайлПр.Открыть() и посмотреть _после_ выполнения этого оператора значение ФайлПр.Открыта(). Если это значение равно Ложь - стало быть, либо путь к файлу не тот, либо файл корявый, либо прав нет. Но обработка тут ни при чём, ковырять надо в системе. Второй вариант - ФайлПр.Открыта() имеет значение Истина. Тогда пошагово идёшь дальше и смотришь - а не закрывает ли кто этот файл? |
|||
49
CrazyBear
17.01.12
✎
16:59
|
А может другая программа держит этот файл?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |