Имя: Пароль:
1C
1С v8
1С 8,3 не видит txt-файл
,
0 margo2017
 
27.12.17
12:58
База находится на сервере PostgreSQL/Windows Server 2003
На рабочих компьютерах Windows 8.1

В документе есть "Процедура ПолучитьДанные". TXT-файл выбирается из каталога с помощью диалогового окна.
На сервере данная операция выполняется и файл подгружается без ошибок.
На рабочих машинах пишет "файл не обнаружен"

Причем ранее работали на 1С 8.1 такой ошибки не было.
1 Lexey_
 
27.12.17
13:00
(0) "На рабочих машинах пишет "файл не обнаружен""
естественно, на сервере же ищет
2 Buster007
 
27.12.17
13:01
на сервере значит файл есть, а на клиенте его нет
3 lavrov
 
27.12.17
13:01
Читай  про разделение данных на клиенте и сервере , если быть кратким , на сервер нет такой папки как на машине где ты выбираешь файл.
4 RomaH
 
naïve
27.12.17
13:02
(2) наоборот
5 lavrov
 
27.12.17
13:03
Сделай шару на сервере положи в нее файл и выбирай файл оттуда. Доступ на шару обязательно пользователю под которым запускается служба сервера 1с.
6 RomaH
 
naïve
27.12.17
13:13
(5) месье знает толк в извращениях

(0) на клиенте помещаешь двоичные даннеы во временное хранилище
передаеш адрес на сервер

на сервере получаешь из временного хранилища и записываешь во временный файл
7 margo2017
 
27.12.17
13:31
Файл находится в папке "Обмен" на всех машинах, путь в коде не прописан....
После перехода с 8.1 на 8.3 изменилось само диалоговое окно (на тех машинах где Windows 8.1), в нем не видно этого файла, хотя он там есть
8 Рэйв
 
27.12.17
13:39
(7)Так вот он ты какой - суслик!
9 Buster007
 
27.12.17
13:54
(4) хм, почему ты так решил, если "На сервере данная операция выполняется и файл подгружается без ошибок."?
10 RomaH
 
naïve
27.12.17
14:17
(9) потому как файл выбирают на клиенте
а обрабатывают его на сервере

когда (0) выбирает файл "на сервере" - то кпросто контекст сервера и клиента совпадает - и файл для сервера находится там же где видит его клиент

а когда "на клиенте" - то клиент видит файл у себя на флешке
а на сервере флешки нет
11 RomaH
 
naïve
27.12.17
14:21
(7) код показывай
у тебя что-то не понятное - пользователь файла не видит - что-то там выбирает (путь же не прописан) - но программа ругается, что файл не обнаружен
какой файл?
12 margo2017
 
27.12.17
14:29
(11) Процедура ПолучитьДанныеИзКадровНажатие(Элемент)
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
    Диалог.Заголовок = "Выберите каталог с данными из программы по кадрам!";
    Диалог.ПолноеИмяФайла = "";
    Диалог.ПредварительныйПросмотр = Истина;
    Фильтр = "TXT (*.txt)|*.txt";
    Диалог.Фильтр = Фильтр;
    //Диалог.Фильтр = "MS Office|*.doc;*.docx;*.xls;*.xlsx|Все файлы (*.*)|*.*";
    Если Диалог.Выбрать() Тогда
        фКаталогЗагрузки = Диалог.ПолноеИмяФайла;
    Иначе
        Отказ = Истина;
        Возврат;
    КонецЕсли;
    
    имяФайла = СокрЛП(фКаталогЗагрузки) +  "uat_" + Строка(Месяц(Дата)) + "_" + Строка(Формат(Год(Дата),"ЧГ=0")) + ".txt";
    
    Текст = Новый ТекстовыйДокумент();
    Текст.Прочитать(имяФайла);
    ВсегоСтрок = Текст.КоличествоСтрок();
    
    тз = Новый ТаблицаЗначений;
    тз.Колонки.Добавить("Ключ");
    тз.Колонки.Добавить("Буква");
    
    для инд = 1 по ВсегоСтрок цикл
        лСтр = Текст.ПолучитьСтроку(инд);
        лСтр = СтрЗаменить(лСтр,Символы.Таб,Символы.ПС);
        
        тзСтр = тз.Добавить();
        тзСтр.Ключ = СтрПолучитьСтроку(лСтр,1);
        тзСтр.Буква = СтрПолучитьСтроку(лСтр,2);
    конецЦикла;
    
    КоличествоДней = ?(ТабельНаАванс,15,31);
    для каждого текСтрока из ОсновнаяТаблица Цикл
        
        для инд = 1 по КоличествоДней цикл
                текМетка = ПолучитьМеткуДня(тз,текСтрока,инд);    
                Если (текМетка <> "") Тогда
                    текСтрока["Л" + Строка(инд)] = текМетка;
                    текСтрока["О" + Строка(инд)] = "";
                КонецЕсли;
        конецЦикла;
        
        для инд = 1 по КоличествоДней цикл
            Если (СокрЛП(текСтрока["Л" + Строка(инд)]) = "") и (СокрЛП(текСтрока["О" + Строка(инд)]) = "") Тогда
                текСтрока["Л" + Строка(инд)] = "В";                
            КонецЕсли;
        конецЦикла;
        ПересчетРабочегоВремениПоСтроке(текСтрока);
        ПересчитатьСтроку(текСтрока);
//        текСтрока.Всего = текСтрока.НачисленоРемонт + текСтрока.Начислено + текСтрока.Классность + текСтрока.Доплата;
//        текСтрока.Всего = текСтрока.НачисленоРемонт + текСтрока.Ночные + текСтрока.Начислено + текСтрока.Классность + текСтрока.Доплата + текСтрока.ДоплатаЗаРаботуВВыходные + текСтрока.ДоплатаЗаСверхурочные + текСтрока.ДоплатаЗаЭкономиюТоплива;
        РассчитатьВсего(текСтрока);
    конецЦикла;
КонецПроцедуры
13 RomaH
 
naïve
27.12.17
14:42
имяФайла - что возвращает после выбора?

каталог с расширением ".TXT"?
14 RomaH
 
naïve
27.12.17
14:43
СокрЛП(фКаталогЗагрузки) + "\" + "uat_" + Строка(Месяц(Дата)) + "_" + Строка(Формат(Год(Дата),"ЧГ=0")) + ".txt";

??