for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Вопросы по 1С
  

формат TXT файла, полученного из 1С
Asws
Автор

Сообщений: 325
Откуда: Балаково
Дата: 19.07.08 20:20:38
Импортирую в Fox из 1С номенклатуру для прайс-листа (наименование, цена, остаток) через .txt - файл.
(нужно для быстрых заказов через интернет и формирования счетов с помощью десктопных Фокс - приложений)

Все отлично, кроме того, что формат .txt файла, формируемого 1C, каждый раз меняется пока непонятным для меня образом.

Взять хотя-бы первые строки .txt- файла :

Вариант 1 - шесть символов табуляции(9) + 13 + 10
Вариант 2 - семь символов табуляции(9) + 13 + 10

Середина .txt. - файла :

Вариант 1 строки заканчиваются строго на 9 + 10 + 13
Вариант 2 Строки заканчиваются по разному, причем две позиции номенклатуры в одной строке (до встречи 13 + 10)

Не говоря уже о выделении подпапок (разделов) продукции - формат заголовков тоже разный.

Есть-ли общая спецификация на выводимый из 1С .txt - файл или это проблема в 1С?
(пробовал рекомендовать одну форму вывода, но посмотрел, что они в 1С делают для формирования этого отчета и ужаснулся)
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
ssa

Сообщений: 12352
Откуда: Москва
Дата: 19.07.08 20:29:47
Asws
Есть-ли общая спецификация на выводимый из 1С .txt - файл или это проблема в 1С?
Странный вопрос. Есть-ли общая спецификация на выводимый из фокса .txt - файл или это проблема в фоксе? А в другом языке программирования?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Asws
Автор

Сообщений: 325
Откуда: Балаково
Дата: 19.07.08 20:38:26
Все равно не устраивает (хотелось-бы сделать экспорт из 1С с ID строк продукции, чтобы не хранить счета в текстовом виде).
Как я понимаю, придется хватать штатного 1С-ника и требовать, чтобы он обеспечил вывод в постоянном формате.
Спасибо.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
piva

Сообщений: 18541
Откуда: Курган
Дата: 20.07.08 05:39:57
А про какую Ску разговор 7.7 или 8 ?
Про 7.7 не знаю но под 8-кой рисуй свою внешнюю обработку пусь выбирает хоть всю номенклатуру хоть по группам, далше выливай в текстовый файл. Потом что понмается под ID - это код или GUID ? И то и другое без проблем


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Asws
Автор

Сообщений: 325
Откуда: Балаково
Дата: 20.07.08 21:33:45
7.7 сетевая. Сам-бы написал быстрее то что надо, но не знаю, с какой стороны к 1С подходить.
ID нужен для того, чтобы содержимое счетов хранить как ссылки на ID из списка продукции,
а так как импортируется новый список неизвестно какого содержания, то приходится текстом
(без ID можно и обойтись, счета быстро удаляются и/или заменяются новыми, а конечные документы уже в 1С).
Завтра буду трясти 1С-ника этой конторы, чтобы совместно решить проблему.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
ser60

Сообщений: 255
Дата: 21.07.08 10:18:07
я из 1с на основании текстового файла формирую справку в сбербанк для кредита.
Оператор сохраняет в определенную папку файл *.txt, затем прогой в фоксе его анализирую -
вначале построчно, затем анализ строк по месту. Главное, чтобы структура файла была постоянной - не менялось месторасположения нужной информации. Посмотри файл текстовый редактором, который показывает и символы 1-32 chr,в частности редактор nortona.
Определяю местоположение в строке и столбце и затем перезаписываю или в дбф таблицу или сохраняю в переменных для дальнейшей обработки.
Успехов!!!
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Asws
Автор

Сообщений: 325
Откуда: Балаково
Дата: 21.07.08 14:56:43
Вот приготовил предварительное ТЗ на единый формат TXT файла, содержащего номенклатуру продукции
(можно расширять путем прибавления к строкам дополнительных полей, пока не встретится перевод строки (13+10))
Может кому надо или замечания будут?
см. вложение (это .doc - файл в zip - архиве)
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
PaulWist

Сообщений: 13181
Дата: 21.07.08 16:25:00
вАще не понял для чего такой огород городить, используй OLE и тяни что надо, согласен не быстро, но зато получаешь доступ к потрохам 1с.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Asws
Автор

Сообщений: 325
Откуда: Балаково
Дата: 21.07.08 17:12:04
1С может быть не установлена на компьютере, нужен txt - файл для импорта, который будет быстро делать
ответственный за это человек (возможно в другом конце города) сразу после очередного изменения цен,
и передавать этот файл куда требуется.
Администрировать работу системы интенет-заказов можно хоть из дома, получая всего-лишь txt-файл,
и не нужно, чтобы для этого необходимо было установить дома сетевую 1С с доступом к данным организации.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
vasya

Сообщений: 71
Дата: 23.07.08 08:57:05
Цитата:
используй OLE и тяни что надо, согласен не быстро, но зато получаешь доступ к потрохам 1с.
А можно поподробней про ole применительно к 8-ке
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
AleksM

Сообщений: 17704
Дата: 23.07.08 09:24:45
Применительно к чьей восьмерке? эСовской или ФОКСовской?


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Сергей_Л

Сообщений: 17849
Откуда: Киров(Вятка)
Дата: 23.07.08 11:30:51
Примерно так:
obj = CreateObject("V81.Application")
или
obj = CreateObject("V81.COMConnector")

obj.Connect([Srvr="имя сервера";Ref="имя базы";Usr="пользователь";pwd="пароль"])
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
piva

Сообщений: 18541
Откуда: Курган
Дата: 23.07.08 11:41:20
В 1С 8.0 GUID просто так не вытащить у COMОбъекта - я уже налетел на это - спасли только "Потусторонние связи"
Хотя в данной ситуации хватит и кода


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
vasya

Сообщений: 71
Дата: 24.07.08 12:30:06
А можно ли написать Запрос к регистру скажем ? (из 8фокса в 1с 8.1 )
И по-каковски - на 1с или в фоксе
А тогда скоко он будет выполняться в сравнении с внешней обработкой ...
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Сергей_Л

Сообщений: 17849
Откуда: Киров(Вятка)
Дата: 24.07.08 13:18:07
>А можно ли написать Запрос к регистру скажем ? (из 8фокса в 1с 8.1 )

Можно, вот пример запроса из 8фокса в 1с 8.1 с записью в дбф , правда запрос не из регистра, а из документа, но это без разницы. Запрос рабочий, но часть текста вырезана(чтоб шпиёны не догадались ), текст разбит на несколько кусков, тк передать можно не более 256 знаков(не сразу догадался , набил шишек).
> А тогда скоко он будет выполняться в сравнении с внешней обработкой
Конечно, через COM-объект медленнее.

PARAMETERS god  
  SET DATE GERMAN  
  PAT_FIL=Sys(5)+SYS(2003)  
  DatN=Ctod('01.01.'+TRANSFORM(god))  
  DatK=Ctod('31.12.'+TRANSFORM(god))  
    
  obj = CreateObject("V81.Application")  
   obj.Connect([Srvr="H04-srv-08";Ref="KR2008";Usr="Ant0";pwd="0tna"])      
  wait window "идет выгрузка данных..." nowait    
    
    
  Файл=obj.NewObject('XBase')  
  	Файл.Поля.Добавить("dog","S",15,0)  
  	Файл.Поля.Добавить("key_ou","S",25,0)  
  	Файл.Поля.Добавить("socr_potr","S",80)  
  	Файл.Поля.Добавить("inn","S",13,0)  
  	Файл.Поля.Добавить("vol_god","N",17,6)  
  	NameBase = "&PAT_FIL\plan_mes.dbf"  
  	Файл.СоздатьФайл(NameBase)  
    
  oQue=obj.NewObject('Запрос')  
  Текст1 = " Объем12Месяц,"  
    
  Текст2="Договор,;  
  ВнешнийКлюч,;  
  Потребитель.Наименование КАК Сокр,;  
  Потребитель.ПолноеНаименование КАК Полн,;"  
    
  Текст3="КатегорияПотребления,;  
  Потребитель.ОКОНХ.Код КАК ОКОНХКод,;  
  Потребитель.ОКОНХ.ПолноеНаименование КАК ОКПолнНаим,"  
    
  Текст4=" Потребитель.ИНН КАК INN,;  
  ОбъемПоставки,;  
  Договор.ДатаНачала,;  
  Договор.ДатаКонца,;  
  Дата "  
    
  Текст5="ИЗ Документ.ПланПоставок.ПланыПоМесяцам КАК ПланПоставокПланыПоМесяцам ;  
  ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПланПоставок КАК ПланПоставок ;  
  ПО ПланПоставокПланыПоМесяцам.Ссылка = ПланПоставок.Ссылка "  
    
  Текст6="ГДЕ  ПланПоставок.Договор.ДатаНачала >= &ДатаНачала  И ПланПоставок.Договор.ДатаНачала < &ДатаКонца ;  
  УПОРЯДОЧИТЬ ПО Сокр"  
    
  oQue.Текст=Текст1+Текст2+Текст3+Текст4+Текст5+Текст6   
  oQue.УстановитьПараметр("ДатаНачала", DatN)  
  oQue.УстановитьПараметр("ДатаКонца", DatK)  
  oRes = oQue.Выполнить().Выгрузить()  
     FOR EACH oRow IN oRes   
    	Файл.Добавить()  
  	Файл.DOG=oRow.Договор  
  	Файл.key_ou=oRow.ВнешнийКлюч  
  	Файл.poln_potr=oRow.Полн  
  	Файл.inn=oRow.INN  
  	Файл.vol_god=oRow.ОбъемПоставки  
      Файл.Записать()  
     ENDFOR     
  Файл.ЗакрытьФайл()      
  RELEASE obj



Исправлено: Сергей_Л, 24.07.08 13:39
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
vasya

Сообщений: 71
Дата: 25.07.08 08:58:23
Это круто ! Патиба , Сергей_Л!
А можно ли запустить сразу Внешнюю обработку после коннекта ?
...командочку, если можно , пожа-а-а-а-луйста !
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Сергей_Л

Сообщений: 17849
Откуда: Киров(Вятка)
Дата: 25.07.08 09:19:14
>А можно ли запустить сразу Внешнюю обработку после коннекта ?
Не совсем понял, нужно запустить внешнюю обработку из фокса?
Если так, то Для 1С 77 здесь в разделе "Не фоксом единым" было:forum.foxclub.ru
Для 8ки не делал не было нужды, попробуй поиск в разделе "Не фоксом единым", только просто "1С" поиск не пойдет, кажись, надо не менее 4 букв.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
piva

Сообщений: 18541
Откуда: Курган
Дата: 25.07.08 14:53:40
Где-то так - на фоксе не пробовал - на 1с-ке фигачит тока шлем держи
Тока именно нужен Application - ComConnector не умеет с внешними обработками работать
obj = CreateObject("V81.Application")    
  obj.Connect([Srvr="H04-srv-08";Ref="KR2008";Usr="Ant0";pwd="0tna"])       
    
  Обработка=Obj.ВнешниеОбработки.Создать(ИмяОбработки);  
  Форма=Обработка.ПолучитьФорму();  
  Форма.Открыть();


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
Asws
Автор

Сообщений: 325
Откуда: Балаково
Дата: 27.07.08 09:32:37
Я насчет единого формата .txt файла серьезно. Позже выложу решение.
Смысл в том, чтобы обеспечить единый интерфейс а-ля-1С, пользователям он нравится.
Именно навигация по подпапкам продукции. Я его сделал штатными средствами без всяких TreeView
На форуме есть решение от Piva и Вячеслава Клепинина, как с помощью ListBox и gdiplus реализовать
навигацию по папкам. Я сделал только с помощью ListBox и набора .bmp файлов (кол-во файлов не ограничено,
можно хоть для каждого подраздела свой рисунок). Функция обработки 50 - 100 строк.
Повторюсь, только стандартное использование ListBox, но результат красивый.
Скриншот прилагаю.
(один файл - скрин рабочего окна программы, второй файл - набор .bmp - файлов для ListBox)
Ratings: 0 negative/0 positive

Re: формат TXT файла, полученного из 1С
vasya

Сообщений: 71
Дата: 28.07.08 13:03:48
Цитата:
Я насчет единого формата .txt файла серьезно.
1c часто всталяет в цифровую инф-ю всякие непечатные матюги (типа неразделимый пробел),
откуда-то они берутся , наверное, чтобы жизнь медом не казалась
Ratings: 0 negative/0 positive



Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 5 Taran  (Гостей: 4)

22.09.2019 23:16:26 exec: 0.18
Mem: 1.486 Mb

© 2000-2019 Fox Club 
Яндекс.Метрика