|
Получить цены из 7.7 | ☑ | ||
---|---|---|---|---|
0
Slon747
11.11.13
✎
20:00
|
Соединяюсь через V77.Application
Скажите, как получить из 7.7 последние цены? |
|||
1
Arh01
11.11.13
✎
20:03
|
(0) какая 7.7?
|
|||
2
Slon747
11.11.13
✎
20:04
|
(1) 1с такая есть еще у некоторых
|
|||
3
ildary
11.11.13
✎
20:07
|
(0) пока будешь скрывать конфигурацию 1С - фиг тебе кто поможет.
|
|||
4
Slon747
11.11.13
✎
20:10
|
(3) На 7.7 конфа Торговля и Склад
Справочник Цены имеет периодический реквизит Цена |
|||
5
ДенисЧ
11.11.13
✎
20:11
|
в зик нет цен...
|
|||
6
Mister-X07
11.11.13
✎
20:12
|
(5) действительно нет (4) :)
|
|||
7
Mister-X07
11.11.13
✎
20:16
|
спрЦены.использоватьВладельца(спрНоменкл);
спрЦены.ИспользоватьДату(ТекущаяДата()); спрЦены.выбрать(); пока спрЦены.получитьЭлемент()=1 цикл ... как-то так |
|||
8
Mister-X07
11.11.13
✎
20:18
|
...
Цена = спрЦены.Цена; ... |
|||
9
Mister-X07
11.11.13
✎
20:20
|
вот пример когда-то сохранил, сейчас успешно использую
ДругаяБаза=СоздатьОбъект("v77.application"); Открыта=ДругаяБаза.Initialize(ДругаяБаза.RMTrade,,); Если Открыта=0 Тогда Сообщить("База не была открыта."); Возврат; КонецЕсли; дДок=ДругаяБаза.CreateObject("Документ.ПриходнаяНакладная"); дТовар=ДругаяБаза.CreateObject("Справочник.Номенклатура"); дДок.Новый(); дДок.ДатаДок=ВыбДокумент.ДатаДок; дДок.Фирма=ДругаяБаза.evalexpr("Константа.ОсновнаяФирма"); дДок.Склад=ДругаяБаза.evalexpr("Константа.ОсновнойСклад"); дДок.КатегорияЦен=ДругаяБаза.evalexpr("Константа.ПриходнаяКатегорияЦен"); дДок.ВариантРасчетаНалогов=ДругаяБаза.evalexpr("Константа.ОсновнойВариантРасчетаНалогов"); дДок.Валюта=ДругаяБаза.evalexpr("Константа.БазоваяВалюта");//рубли дДок.Дата_курса=дДок.ДатаДок; дДок.ТипУчета=1; дДок.Автор=ДругаяБаза.evalexpr("глПользователь"); дДок.ПризнакНакладной=ДругаяБаза.evalexpr("Перечисление.ПризнПрихНакл.Закупка"); дДок.Курс=1;//рубли дДок.Комментарий=ВыбДОкумент.Комментарий; ВыбДОкумент.ВыбратьСтроки(); Пока ВыбДокумент.ПолучитьСтроку()=1 Цикл дДок.НоваяСтрока(); ТовКод=СокрЛП(ВыбДОкумент.Товар.Код); Если дТовар.НайтиПоКоду(ТовКод)=0 Тогда Сообщить("Не найден товар с кодом "+ТовКод); Возврат; КонецЕсли; дТовар.ИспользоватьДату(дДок.ДатаДок); дДок.Товар=дТовар.ТекущийЭлемент(); дДок.Количество=ВыбДокумент.Количество; дДок.Единица=дТовар.ЕдиницаПоУмолчанию; дДок.Цена=ВыбДОкумент.Цена; дДок.Коэффициент=1; дДок.Всего=ВыбДОкумент.Сумма; дДок.Сумма=ВыбДОкумент.Сумма-ВыбДокумент.НП; дДок.СтавкаНДС=дТовар.СтавкаНДС; дДок.НДС=ВыбДокумент.НДС; дДок.СтавкаНП=дТовар.СтавкаНП; дДок.СуммаНП=ВыбДокумент.НП; КонецЦикла; дДок.УстановитьНовыйНомер(ДругаяБаза.evalexpr("Константа.ПрефиксНомеровДокументовУпрУчета")); Сообщить(""+дДок.НомерДок); дДок.Записать(); |
|||
10
Mister-X07
11.11.13
✎
20:21
|
***********
Методы: Initialize() - открыть базу. Синтаксис метода такой: Initialize(<Имя объекта>.RMTrade, <Командная строка>, <Пустая строка>), где: <Имя объекта>.RMTrade - имя переменной и ключевое слово RMTrade. <Командная строка> - командная строка, в которой можно прописать путь к базе, имф пользователя и пароль. <Пустая строка>) - либо пустая строка, либо "NO_SPLASH_SHOW" - чтобы не показывать заставку при загрузке. Для того, чтобы открыть базу через OLE - необходимо создать объект с идентификатором OLE, выполнить инициализацию базы и проверить успешность выполнения инициализации. В своем примере я не указываю никаких дополнительных параметров, поэтому открывается квадратное окошко выбора базы, предлагается выбрать пользователя и ввести пароль. ДругаяБаза=СоздатьОбъект("V77.Application"); Открыта=ДругаяБаза.Initialize(ДругаяБаза.RMTrade,,); Если Открыта=0 Тогда // True=-1, False=0. Для всех OLE команд. Сообщить("База не была открыта."); Возврат; КонецЕсли; 3. Методы: CreateObject() - создать объект агрегатного типа. Этот метод создает объект агрегатного типа данных системы 1С-Предприятия и возвращает ссылку на него. Синтаксис метода такой: CreateObject(<ИмяАгрегатногоТипа>), где: <ИмяАгрегатногоТипа> - строковое выражение, значение которого содержит имя агрегатного типа данных, заданного в конфигураторе. Например: "Справочник.Номенклатура", "Документ.ПриходнаяНакладная". 4. Методы: EvalExpr() - вычислить выражение. Синтаксис метода такой: EvalExpr(<СтрокаВыражения>), где: <СтрокаВыражения> - строковое выражение, записанное на встроенном языке 1С-Предприятия. Результатом выражения может быть число, строка, дата или значение любого агрегатного типа данных. Результат с неопределенным типом преобразуется к строковому типу. 5. Методы: ExecuteBatch() - выполнить последовательность операторов. Синтаксис метода такой: ExecuteBatch(<СтрокаОператоров>), где: <СтрокаОператоров> - строковое выражение, текст программы на встроенном языке 1С-предприятия. Возвращает значение логического типа: TRUE, если последовательность операторов выполнена успешно, FALSE, если нет. В OLE Automation TRUE и FALSE имеют соответственно значения -1 (минус единица) и 0. |
|||
11
Slon747
11.11.13
✎
20:28
|
(9)(10) Спасибо! Теперь получится
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |