:: Не фоксом единым
1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Необходимо провести документ сохраненный в Excel-е. Для этого хочу получить объект Операция (CreateObject("Операция")). Как это сделать?
Точнее:
1) Как получить список документов?
2) Как получить список операций выбранного документа?
Ratings: 0 negative/0 positive
Re: 1С проводки
Андрей Давыдов

Сообщений: 1411
Дата регистрации: 08.02.2003
2 Петров Андрей

Для доков обычно существует одна операция с несколькими проводками.
Не совсем конечно понятно зачем и операции и доки править руками,
обычно заполняют док и проводят его, а ОбработкаПроведения уже в модуле дока,
либо сразу без доков заполнять операции провдками.


** Создаем ОЛЕ
PUBLIC го1С
LOCAL ARRA лмОле1С(1)
LOCAL лнИтр,лсПутьИб1С,лоДок,лоОпер
FOR лнИтр=1 TO ALINES(лмОле1С,"V77.Application;V77L.Application;V77M.Application;V1CEnterprise.Application",.T.,";")
го1С=ICASE(VART(го1С,.F.)="O",го1С,CREATEO(лмОле1С(лнИтр)))
ENDFOR
IF го1С,.F.)#"O"
RETURN 100=MESSAGEB("Невозможно создать экземпляр 1С")
ENDIF
лсПутьИб1С="C:\1C_Tune" && GETDIR()
го1С.Initialize(го1С.RMTrade,"/D"+лсПутьИб1С+" /n /p","") && Монопольно
лоДок=го1С.EvalExpr('CreateObject("Документ.xxxxx")')
лоДок.ВыбратьДокументы(<Дата1>,<Дата2>) && Открыли Выборку доков
DO WHILE лоДок.ПолучитьДокумент()=1 .....
** Обычно ОбработкаПроведения уже есть в доке и искусственно его (пере)проводить нет необходимости.
** Если же ручками то:
лоОпер=го1С.EvalExpr('CreateObject("Операция")')
IF лоОпер.НайтиОперацию(лоДок)=1
** Правка операции этого дока




------------------
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Оки буду пробовать... Спасибо.

Цитата:
либо сразу без доков заполнять операции провдками.

А как это сделать? То есть как создать операцию не принадлежащую документу?



[i][small][color=Gray]Отредактировано (01.11.04 12:21)


------------------
PS Недочитал тему до конца...
Ratings: 0 negative/0 positive
Re: 1С проводки
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
goOper = go1C.CreateObject("Операция")
goOper.НоваяПроводка()
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Ясно. Попробую. Я правда делал go1c.EvalExpr('CreateObject("Операция")') и вылетало с ошибкой.
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
2 AleksM

Разобрался. Дело было в том что я задавал пустые пароль и логин (го1С.Initialize(го1С.RMTrade,"/D"+лсПутьИб1С+" /n /p","")). Убрал /n /p и все заработало. Вот только у меня другой вопрос возник. Делаю как написано:

Цитата:
goOper = go1C.CreateObject("Операция")
goOper.НоваяПроводка()

Но мне 1С говорит что операция ни с чем не связана. Как связать объект операции с операцией в 1С?
Ratings: 0 negative/0 positive
Re: 1С проводки
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Цитата:
goOper.НоваяПроводка()

Прям на этой строке и ругается?

Скорее всего ты не заполнил реквизиты проводки: Дебет, Кредит и т.д,
или 1С просит привязать операцию к документу на основании которого она сделана.
Хотя второе маловероятно. В моей конфигурации (1C: Бухгалтерия 7.7) можно вводить
операции без привязки к документу.
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Цитата:
Прям на этой строке и ругается?

Да.

Цитата:
Скорее всего ты не заполнил реквизиты проводки: Дебет, Кредит и т.д,

Так это ж после того как делаешь новую проводку. И до Записать...

Цитата:
1С просит привязать операцию к документу на основании которого она сделана.

Именно. Насколько я помню. Сфоткаю - выложу скриншот.

Цитата:
В моей конфигурации (1C: Бухгалтерия 7.7) можно вводить

Да у меня тоже 7.7 редакцию на вскидку не помню... Но запускаемый файл - 1cv77s.exe
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
И кстати еще вопросик. Как функции 1С использовать? Например "СчетПоКоду"?
Ratings: 0 negative/0 positive
Re: 1С проводки
Равиль

Сообщений: 6554
Откуда: Уфа
Дата регистрации: 01.08.2003
Андрей, что это тебя в такие дебри понесло ? Самому лепить проводки, искать счета
Если я правильно понял, все началось с документов в Excel - покажи их - может проще будет грузить их в 1С и пусть она сама их проводит по своим правилам.




------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: 1С проводки
Андрей Давыдов

Сообщений: 1411
Дата регистрации: 08.02.2003
2 Петров Андрей

По поводу счетов
либо:

лоСчет =1С.EvalExpr('CreateObject("Счет.ПланСчетовxxxx")')
лоСчет.НайтиПоКоду('50.1')

либо

лоСчет =1С.EvalExpr('СчетПоКоду(<КодСчета>,<ПланСчетов>)'),

Операция может быть введена вручную - соответсвенно может быть и не привязана к доку
Ошибка в выше приведенном коде в том что создав Объект операция надо его (перед заполнением проводок)
спозиционировать на конкретную операцию: Новую, Найти или Выбрать..., и потом уже заколачивать проводки. т.е.

лоОпер=го1С.EvalExpr('CreateObject("Операция")')
лоОпер.Новая()
... Реквизиты Операции
лоОпер.НоваяПроводка()
... Реквизиты проводки операции - счет дт/кт, субконто, сумма...
лоОпер.Записать()

Начсет релизов v77 - выше 15 - то нормально - последний 23 релиз.
Версии 1с различаются только загрузочным файлом exe
(первой дискетой и соответсвенно хаспом):
1cv77l - стандартная (однопользовательская)
1cv77 - сетевая
1cv77s - для SQL (работает и с dbf)

см. в синтаксис-помошник в конфигураторе.




------------------
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
2 Андрей Давыдов

Попробовал я вчера найти (приблизительно так как ты сказал) счет :

m.loSchet=m.lo1c.EvalExpr('СчетПоКоду("50")')

Объект находится (те тип полученной переменной - О) но в строчку loOper.Дебет.Счет не заносится. Точнее при записи операции 1С пишет что счета Дебета и Кредита не заданы... Хотя этот счет стопудово есть в базе. Может быть я не указал план счетов. Как его указать то он вроде там один и есть?

2 Равиль

Цитата:
Андрей, что это тебя в такие дебри понесло ?

Да вот работу нашел тут. Придется сидеть с бухгалтерами и делать за них их работу... Пока задачи как таковой нету. Просто хотел разобраться в этом вопросе пока время есть...
Ratings: 0 negative/0 positive
Re: 1С проводки
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
loOper = lo1C.CreateObject("Операция")
loAccDb = lo1C.CreateObject("Счет.Основной")
loAccCr = lo1C.CreateObject("Счет.Основной")

loOper.New()
loOper.НоваяПроводка()

loCr.НайтиПоКоду("50")
loDb.НайтиПоКоду("00")

loOper.Кредит.Счет = loCr.ТекущийСчет()
loOper.Дебет.Счет = loDb.ТекущийСчет()
loOper.Сумма = 10

loOper.Записать()
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Разобрался. Опять оказалось тупил я (точнее незнал что нужно по другому писать) Оказывается в 1С кавычки двойные должны быть. А я ставил m.loSchet=m.lo1c.EvalExpr("СчетПоКоду('50')") поэтому возвращался пустой объект... Вот кстати еще одособенность. Смотрю в дебаггере оббъекты не только нельзя раскрывать (чтоб посмотреть свойства и методы) но и просматривать их свойства (те которые уже использовал) Например пишу m.loOper.Содержание = '123' - смотрю в дебаггере - а там пусто, те вместо 123 пробелы. Вывожу на экран ? m.loOper.Содержание - 123.

Вот тут у меня еще один вопрос возник. Есть там понятие объект (например счет). Хочу добраться до его свойств. До стандартных как нефиг *****. А вот до дополнительных (<реквизит>) немогу. Так вот вопрос. Как добраться до поля "Полное название" в "Плане счетов"? Пробовал m.loSchet.Реквизиты.ПолнНазвание и его варианты - но ****** не проходит...
Ratings: 0 negative/0 positive
Re: 1С проводки
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
А так

m.loSchet.ПолноеНаименование = "Полное наименование счета"
Ratings: 0 negative/0 positive
Re: 1С проводки
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Поправка

m.loSchet.ПолнНаименование = "Полное наименование счета"
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Да - это первое что я попробовал...
Ratings: 0 negative/0 positive
Re: 1С проводки
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
И не прошло, да. Я как чуял.
С атрибутами счетов по OLE не работал, написал по аналогии со справочниками,
но тумаю надо попробовать метод счета УстановитьАтрибут("ПолнНаименование","Полное наименование счета")
Ratings: 0 negative/0 positive
Re: 1С проводки
Андрей Давыдов

Сообщений: 1411
Дата регистрации: 08.02.2003
Извиняйте что не в ветку - лень мать.
лоСчет=го1С.CreateObject("Счет.Основной")
=MESSAGEBOX(лоСчет.НайтиПоКоду("50")) && 1
=MESSAGEBOX(лоСчет.ПолнНаименование) && Касса




------------------
Ratings: 0 negative/0 positive
Re: 1С проводки
Петров Андрей
Автор

Сообщений: 2506
Откуда: Химки (М.О.)
Дата регистрации: 17.04.2002
Короче все нормально. У меня 2 конфигурации в одной есть ПолнНазвание в другой (самодельной) нету. Поэтому и не находилось. Так что это я опять тупанул.
Ratings: 0 negative/0 positive


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

On-line: 10 (Гостей: 10)

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