powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Как на VBScript выставить счет в 1С?
20 сообщений из 70, страница 3 из 3
Как на VBScript выставить счет в 1С?
    #35872999
Enot5467
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров Александр,

Ну да, с 7 немного не так надо рассуждать. В любом случае есть смысл поискать альтернативу "записи напрямую в базу". Просто видел одну контору (не соврать, уже 5 лет воюет), где изначально начали писать все напрямую в базу. По мере расширения перешли на СКЛ, теперь бьются с переходом на 8. В общем там программисты по принципу "мыши плакали, кололись, но продолжали есть кактус".
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35873029
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enot5467,

Если в конкретную конфу, да еще и на движке Торговли - прямая запись самое оно ;) Я и сам так у себя сделал, правда 5 лет - это, конечно, перебор. Вместе с изучением структуры Торговли ушло чуть больше месяца. :) Для Бухгалтерий же прямая запись, особенно извне - действительно кактус. При желании, конечно, можно и в бухдвижек напрямую писать, но... бухам обновили релиз, появился новый счет\субконто\перечисление и... начинаем есть кактус заново :)
C дургой стороны, если у вас оперативный\управленческий учет в другой программе, для чего тогда нужна Торговля? Только если это какая-то часть КИС, дополняющая штатную Торговлю, функционал которой проблематично реализовать в той же 1С. Но наличие многокомпонентных КИС с разнородными и несостыкованными модулями - показатель, что пора задуматься о собственом ИТ отделе. Или, если он есть, о разумности его содержания в том составе, который привел к появлению мышек, основные функции которых - поедание кактусов :) Хотя я тоже знаю у нас конторы, в которых есть должности типа "оператор обмена 1С" - причем доведено до такого безо всяких "прямых записей", штатный УРИБ, базы dbf, никаких изысков... просто баз очень много и разных... Ну и соответственно есть "ревизионный отдел", который разгребает косяки учета товаров, допущенных в результате косяков обмена. :)
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35873126
Enot5467
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Позволю себе еще одно дополнение:
Многие решают трудозатраты программистов добавлением еще одного сервера стоимостью 7000 рублей (обычная раб.станция), где крутится копия 1С выполняющая роль загрузки данных. При чем скорости достигаются очень даже хорошие. И это при условии, что нет привязке ни к платформе ни к узконаправленными программистам
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35873609
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enot5467,

Продавливать железом неповоротливость 1Ски - это само собой :) На сотню рабочих мест восемь серваков разной степени крутости - видел такое :) Как бы еще объяснить то, что при переходе на новую систему, в которой дублируется функционал преждней системы, добавляется еще куча функционала, из которого остро востребован только один модуль, и под все это удовольствие требуется два новых сервака общей стоимостью под $3000? Это не считая полугодового срока внедрения, на два порядка большей стоимости лицензий и опять таки дописки отсутствующего функционала самостоятельно потом, или согласие на растягивание внедрения еще на полгода...
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35873729
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖкогда за вами будут бегать бухи с намереньем вырвать кадык за разрушенную базу - вспомните эту ветку...

"интеграторы" мля...
+500
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35873756
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван АбрамовПри этом в отделе продаж у менеджеров 1С даже не установлена (и не должна быть установлена по соображениям безопастности).
упал со стула....
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35873788
Enot5467
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров Александр,

Может и так, может и не поворотливая по сравнению с другими системами. Только тут надо выбирать (по моему мнению) немного другой уровень абстракции. Ведь рассуждаю о возможностях СКЛ сереверов и ОЛАП кубов, мы же не вспоминаем какой-нибудь ассемблер или голый С, хотя на них обработка данных будет еще быстрее. (кажется я опять в лирику ухожу) Просто встает вопрос: зачем делать сложнее, дороже и не понятней, при этом по скорости не быстрее? Разве только для саморазвития. К тому же я не видел еще ни одного собственника, которому интересно как сервера устроены. Скорее собственник деньги будет считать, нежели нюансы админства/программирования.
А еще бухов жалко после таких "писателей", когда вместо 15 минутного обновления они видят несколько дней экспериментов. При чем постоянно что-то не работает...
Хороший пример с калькулятором: садясь за рабочее место, мы же не задумываемся как реализована логика логического ИЛИ, или какой ток идет с солнечной батарее. Другими словами калькулятор это черный ящик с кнопками. Ни у кого даже в мыслях не возникает припаять туда датчик и измерять шаги. Так же и с 1С: все что снаружи (кнопки т.е.) это можно делать в конфигураторе, а то что внутри, скорее всего будет лишним.
С другой стороны, если автор сделает универсальную систему по обмену/синхронизации данных со сверх высокой скоростью, то найдутся тысячи контор готовых ему заплатить.
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35873801
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такие люди есть... только они понимают чем занимаются... А не вопят "ну я же могу своими лапами залезть в базу outlook без прокладок".

http://softpoint.ru/
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35875633
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enot5467Может и так, может и не поворотливая по сравнению с другими системами. Только тут надо выбирать (по моему мнению) немного другой уровень абстракции. Ведь рассуждаю о возможностях СКЛ сереверов и ОЛАП кубов, мы же не вспоминаем какой-нибудь ассемблер или голый С, хотя на них обработка данных будет еще быстрее. (кажется я опять в лирику ухожу) Просто встает вопрос: зачем делать сложнее, дороже и не понятней, при этом по скорости не быстрее?
В том то и дело, что на порядки быстрее. Рассуждения о возможностях SQL и OLAP - это не про 1С, она не использует эти возможности. Дело даже не в абстракциях, с этим 1Су как раз большой плюс за создание инструментов разработки под более высокий уровень абстракций. Дело как раз в том, как эти абстракции чисто технически реализованы.
Enot5467
К тому же я не видел еще ни одного собственника, которому интересно как сервера устроены. Скорее собственник деньги будет считать, нежели нюансы админства/программирования.
Как вы тогда объясняете то, что многие собственники по мере роста предпочитают отказываться от услуг франча и брать собственного 1Сника?
Как вы объясните огромное количество переписанных, написанных с нуля и просто "изнасилованных" конфигураций только лишь для того, чтобы не покупать по новому серваку каждый год?
Enot5467
А еще бухов жалко после таких "писателей", когда вместо 15 минутного обновления они видят несколько дней экспериментов. При чем постоянно что-то не работает...
Полностью согласен с вами. "Тот кто тронет конфу бухучета, тот в ней и погибнет!" :)
Интеграция с БУ и НУ должна быть такой, чтобы возможность обмена данными не требовала модификаций бухгалтерских конфигураций. Онлайновый обмен для бухов не нужен, скорость работы тоже. Возможностей платформы вполне достаточно реализовать какой угодно вариант загрузки данных.
Enot5467
Хороший пример с калькулятором: садясь за рабочее место, мы же не задумываемся как реализована логика логического ИЛИ, или какой ток идет с солнечной батарее. Другими словами калькулятор это черный ящик с кнопками. Ни у кого даже в мыслях не возникает припаять туда датчик и измерять шаги. Так же и с 1С: все что снаружи (кнопки т.е.) это можно делать в конфигураторе, а то что внутри, скорее всего будет лишним.
Что делать, если вечером на калькуляторе можно посчитать не более десятка сложений в минуту? Если для того, чтобы выполнять на нем сотню сложений требуется подставлять его под 100-ватную лампочку? а для умножения - под две? Особенно когда деньги на лампочки у вас уже есть, а на покупку калькулятора на батарейках еще нет?
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35877613
Enot5467
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров Александр,

Хорошо, оно все так и есть, я не против прочих технологий, т.к. сам постоянно 1С скрещиваю со всякими СКЛ-ми, вёрдами и прочим, что попадается. А еще программирую на ассемблере немного. Но при этом даже в мыслях не было переписать что-то СКЛ-ное, хотя там багов не мало. Взять тот-же контроль стека после каждого чиха, это же такая просадка в производительности. Или выделение памяти... когда для каждого модуля куча перевыделений, хотя соседние операции занимают практически одно и то же место.
Смысл в том, что для чего система делается, там и применяется. Ну а если есть желание и возможности что-то поулучшать, то есть готовые алгоритмы что-бы не залезть при этом в лужу. Например в случае с ситуацией автора, мне кажется эффективней сделать анализатор структуры базы для всех видов хранений, кроме файлового. Создать модуль по настройке переноса данных (типа Наименование переносить в наименование). Обязательно сделать контроль кода в модулях объектов, т.к. там часто располагается очень много логики. Добавить модуль котроля прав, обязательно вставить механизм разрешения коллизий. Ну и разработать исполняемую часть. И тогда все заработает без проблем. Только боюсь скорость будет еще медленнее 1С.
Может мы немного по разному это понимаем, а может и я не так изъясняюсь, но моё мнение остается прежним: либо получится быстро и ооочень криво, либо ровно, но очень долго
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35878140
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Enot5467Егоров Александр,

Хорошо, оно все так и есть, я не против прочих технологий, т.к. сам постоянно 1С скрещиваю со всякими СКЛ-ми, вёрдами и прочим, что попадается. А еще программирую на ассемблере немного. Но при этом даже в мыслях не было переписать что-то СКЛ-ное, хотя там багов не мало. Взять тот-же контроль стека после каждого чиха, это же такая просадка в производительности. Или выделение памяти... когда для каждого модуля куча перевыделений, хотя соседние операции занимают практически одно и то же место.
Смысл в том, что для чего система делается, там и применяется.
Ни разу не сталкивался с желанием что-то изменить в движке того же mssql :) Как-то вот всегда устраивала его скорость работы и требовательность к ресусрам. Речь идет не о мелкой шлифовки багов (которые есть в каждой сложной системе, и их наличие не зависит от языка, на котором система написана). Речь идет о том, что весьма несложной доработкой системы можно увеличить производительность системы на порядки, а не на проценты. Но при этом система снимается с поддердки производителем, что естественно. Но эта же система (говорю сейчас только про 77, и только про УУ) так или иначе всегда требует доработки (изменение процессов предприятия, появление новых, отмирание старых и т.д.) - система и так лишается поддержки производителем в большинстве случаев, почему бы помимо модернизации логики еще и не сделать оптимизацию? Которая в том числе снижает затраты на железо?

Enot5467Ну а если есть желание и возможности что-то поулучшать, то есть готовые алгоритмы что-бы не залезть при этом в лужу. Например в случае с ситуацией автора, мне кажется эффективней сделать анализатор структуры базы для всех видов хранений, кроме файлового. Создать модуль по настройке переноса данных (типа Наименование переносить в наименование). Обязательно сделать контроль кода в модулях объектов, т.к. там часто располагается очень много логики. Добавить модуль котроля прав, обязательно вставить механизм разрешения коллизий. Ну и разработать исполняемую часть. И тогда все заработает без проблем.
Я боюсь стоимость такой разработки превысит стоимость той самой программы автора, для которой требуется экспорт в 1С. :) Автору не нужна универсальность. Ему достаточно эскпоротировать один единственный вид документа.
Enot5467
Может мы немного по разному это понимаем, а может и я не так изъясняюсь, но моё мнение остается прежним: либо получится быстро и ооочень криво, либо ровно, но очень долго
Ну, не сказал бы что очень по разному. Просто получится быстро и красиво, но строго для одного конкретного релиза 1С. Универсальность же потребует либо модификации конфы, что нежелательно. Либо полноценной разработки и "реверс-инжиниринга" платформы, что долго, дорого, не совсем законно, и не сказать бы что особо востребовано. Тем, кому нужен быстрый обмен своих систем с 1С - сделают его сами. Тех, кому скорость обмена не особо важна - вполне устроят штатные средства обмена. Или "1С:Конвертация данных", или "1С:Консолидация". Здесь основная проблема это то, что платформа 1С запрещает прямой доступ к данным, но не предоставляет никакого API для взаимодействия с конркетной конфигурацией без запуска всей платформы по OLE\COM. Из-за чего не получается сделать "универсально, быстро и красиво".
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35879449
Enot5467
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров Александр
Ни разу не сталкивался с желанием что-то изменить в движке того же mssql :) Как-то вот всегда устраивала его скорость работы и требовательность к ресусрам
Не поверите, 1С-ники тоже ни когда не задумываются о том, что можно что-то ускорить методом "влезть в СКЛ" пока сами не залезут в эти системы. А так же подойдите к любому толковому ассемблеристу (либо очень толковому сишнику) и послушайте, что они скажут о мс скл :) особенно про интерфейс связи.
Еще раз повторюсь: кто в чем силен, тот там и ваяет иногда невозможное. Если автор так решит проблему и при этом все будет тип-топ, то скорее у него другие учиться попробуют. В наше время нормальных специалистов что-то очень мало осталось.
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35901798
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже вставлю свои 5 рублей :)
Во-первых, в v8 при соединении через СОМ сама 1С НЕ запускается. Запускается легкий COМ-сервер, за пару секунд (на слабом компе). А остальное уже дело техники. Я ради интереса писал создание документа через скрипт на Python-е... Довольно шустро, только есть свои тонкости в работе со ссылочными реквизитами - на мисте.ру есть статья про СОМы, все описано.
Во-вторых, если делать офф-лайн обмен, удобней наверно сделать в сетке промежуточный SQLEXPRESS-сервак для хранения выгруженных данных. Наглядно, доступно, бесплатно и быстро.
В-третьих, регламентные задания в 7.7 есть, я видел в конфиге "Астор" такое... правда не знаю как сделано... возможно подключаемой ДЛЛ-кой... это тоже не проблема. В файловой восьмерке они тоже есть, и без шаманства.

В итоге вы запускаете свой скрипт, он выгружает счета в СКЛ-базу, 1С8 по заданию каждые 10 минут проверяет и сливает обработкой к себе, удаляя из базы или сливая в отдельную таблицу-архив.
ИЛИ: Скрипт сразу цепляется по СОМ к 1С и вливает в нее счета... но так помедленнее будет изза ожидания их проведения хотя бы, поэтому если 1С на другом компе то лучше быстро слить в СКЛ-базу и пусть 1С сама потом подключается и забирает, тормозя свой а не наш комп :)

а это жесть все таки... INSERT INTO tblСчета (Number, Amount) VALUES (1, 10000)
Человек наверно не заглядывал в DD файл :)
вот парсер DD файла для примера... и это только названия таблиц... поля еще страшнее... да еще хранятся по хитрому
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#язык - python :)
import re
from operator import truth

tab  = ''
name = ''
s=' '
f = open(filepath,'r')
while s!='\n':
    s = f.readline()
    if truth(re.search('#==TABLE ',s)):
        tab = s.split(':')[ 1 ].strip()
        # Убираем описания ТЧ и движений, т.к. их коды дублируются
        if truth(re.search('(Мн\.ч\.)|(Дв\.)',tab)):tab=''
        tab = tab.replace('ник ','ник.')
        tab = tab.replace('ент ','ент.')
    r = re.search('T=(\w+)',s)
    if truth(r):
        name = r.group( 1 )
        #Шаблон вывода. Можно модифицировать как надо
        if tab!='': print '%-8s \t%s\n' % (name,tab),    
f.close()
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35901893
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
badboychik,

Восьмерку только начинаю крутить, про ее сервер уже знаю, но как быть с файловой конфой? Насколько я понял - в файловом варианте 8-ка также будет грузиться вся.
Для 77 "пакетный" режим работы - суть тот же запуск всего приложения, только не по событию извне, а по расписанию.
Да и парсер dd\dds еще не все - как быть с перечислениями, периодикой и прочим, чего найти можно только в md?

Смысл как раз и был - отговорить автора от прямой записи в таблицы 1С :) Особенно если требуется как можно более простой код. И особенно когда планируется взаимодейсвтие с разными конфигурациями 1C. :)
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35901903
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНасколько я понял - в файловом варианте 8-ка также будет грузиться вся.
нет, это в 7.7 только так она работает - через v7.application. А восьмерка может двумя способами - и так и через СОМ. Во втором случае полностью она не запускается. И не важно файловая она или серверная. А записать напрямую в файл восьмерки у человека и не получится никогда. там же не ДБФ а новый закрытый формат *.1СD.
Даже с SQL версией не разобраться, т.к. первым же инсертом порушится вся целостность.
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35907851
Set2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егоров Александрnicktcher,
Код: plaintext
1.
2.
3.
4.
 
Set v7=CreateObject("v77.application")
Res=v7.Initialize(v7.rmtrade,"","")
Doc=v7.CreateObject("Документ.Счет")
то... откуда я узнаю структуру этого документа в данной конфигурации? откуда я узнаю, что такой документ в этой конфигурации вообще есть? Сделать базовый скрипт под какую-либо типовую конфигурацию и у каждого клиента его рихтовать? Либо ограничить интеграцию только с теми клиентами, которые сидят на типовых конфах?


Ну вообще-то в 1С можно получить доступ к структуре метаданных без использования внешних компонент. И на Ваш вопрос ответ прост:
то... откуда я узнаю структуру этого документа в данной конфигурации?
Структура:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  // Проверим есть ли такой документ
  if v7.Metadata.Документ("Счет").Выбран()> 0  then
    for i= 1  to v7.Metadata.ОбщийРеквизитДокумента() 
      Set Attr = v7.Metadata.ОбщийРеквизитДокумента(i) 
      // Свойства атрибута: Attr.Тип, Attr.Вид, Attr.Длина, Attr.Точность, Attr.Идентификатор
    next i
    Set Doc = v7.Metadata.Документ("Счет")
    for i= 1  to Doc.РеквизитШапки()
      Set Attr = Doc.РеквизитШапки(i) 
      // Свойства атрибута: Attr.Тип, Attr.Вид, Attr.Длина, Attr.Точность, Attr.Идентификатор
    next i
    for i= 1  to Doc.РеквизитТабличнойЧасти()
      Set Attr = Doc.РеквизитТабличнойЧасти(i) 
      // Свойства атрибута: Attr.Тип, Attr.Вид, Attr.Длина, Attr.Точность, Attr.Идентификатор
    next i
  end if

Точно так же можно получить доступ к структуре справочников и констант, удачи :)
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35908920
Enot5467
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот еще:
Наблюдал конструкцию в виде отдельного модуля, обеспечивает связь между базами через промежуточный СКЛ сервер. Там же реализован обмен по ОЛЕ//КОМу. Так вот второе, на порядки медленнее на больших данных, например перепроведение квартала. А вот через промежуточное СКЛ-хранилище обмен быстрый. Один объект несколько секунд , за исключением тех, для кого нужны "долгие" внутренние алгоритмы (одно проведение ОРП чего стоит). Конечно, это не мгновенно, но все же очень быстро. Сама система сделана в виде настраиваемого модуля.
Плюсы: нет привязки к внутренней структуре. При изменении чего-то в метаданных обмен можно быстро перенастроить. Высокая скорость.
Тут-же протоколирование работ, свертка "почти одинаковых" элементов и еще там что-то.

Мне кажется нормальное решение и не дорого фирме обошлось
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35909468
Фотография badboychik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсвязь между базами через промежуточный СКЛ сервервот и я говорю, так оптимальнее. А особенно для постоянного обмена. Я делал так для обмена между переписанной торговлей 7.7 и типовой бухой 8.1
Удобно отлаживать, просматривать результаты... ну и свертки всякие делать хранимками.
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35909652
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set2009,

Вы забыли еще в скрипт добавить и перенос и получение кодов всех справочников, перечислений и прочего 1Сного, требуемого для правильного заполнения документа. :)
Хотя конечно, можно и в скрипте все сделать, безо всяких обработок 1С. Дело вкуса...
Выбор, собсно, лишь в том, кто и что будет должен рихтовать при обновлении\изменении конфы - vbscript или обработку 1С. Ну и соответственно кто должен разбираться в тонкостях атрибутов 1С документов\справочников - автор системы-"экспортера" или 1Сник, обслуживающий конфигурацию-"импортер".
...
Рейтинг: 0 / 0
Как на VBScript выставить счет в 1С?
    #35911908
Leoligov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
trdmИван АбрамовПри этом в отделе продаж у менеджеров 1С даже не установлена (и не должна быть установлена по соображениям безопастности).
упал со стула....
примерно так же....
и что же там отдел продаж продаёт?
наличие такого количества систем хреновом подходе к развитию информационных систем в вашей организации.
Нормального диретора по ИТ вам не хватает. Можно огласить сколько человек работает с каждой информационной системой?
...
Рейтинг: 0 / 0
20 сообщений из 70, страница 3 из 3
Форумы / [игнор отключен] [закрыт для гостей] / Как на VBScript выставить счет в 1С?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]