powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / VB и 1С как получить остатки товаров?
43 сообщений из 43, показаны все 2 страниц
VB и 1С как получить остатки товаров?
    #38202324
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim v7 As Object
st = " /D" & """\\Natali\1sp\""" & " /N " & """ааа""" & " /P" & """111"""
Set v7 = CreateObject("v77.Application")
result = v7.Initialize(v7.RMTrade, st, "yes_SPLASH_SHOW")
DoEvents
If Not result = True Then
    MsgBox "Соединение с 1С не установлено!"
    Exit Sub
Else

    Set spr = v7.CreateObject("Справочник.Товары")
    If spr.НайтиПоКоду(8186, 0) = 1 Then
        MsgBox spr.GetAttrib("Наименование")
    Else
        MsgBox "Товар не найден!"
    End If
    Set Reg = v7.CreateObject("Регистр.ОстаткиТоваров")



Что необходимо дописать чтобы к найденному названию товара в 1С получать еще и его остаток? Заранее большое спасибо
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202395
psergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,
надо знать структуру регистра ОстаткиТоваров и смотреть в сторону метода СводныйОстаток. а сначала - определиться что мы хотим получить в результате, зачем это нужно.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202406
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно вбивая код 1с товара узнать какой остаток в 1с этого товара.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202473
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Вам для начала нужно научиться пользоваться поисковиком. Есть масса примеров. Так что невижу смысла повторяться.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202482
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Облазил уйму страниц но как по коду узнавать остаток так и не нашел. Являюсь не опытным пользователем. Прошу скинуть ссылки или лучше написать пример
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202484
psergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр...Так что невижу смысла повторяться.
злой ты, Бобр :)
Slash232, структура регистра какая? нужен перечень измерений и ресурсов в том порядке как они идут в конфигурации.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202513
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это?
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202556
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Код: sql
1.
MsgBox Reg.СводныйОстаток(spr.ТекущийЭлемент(),,,"ОстатокТовара")
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38202567
psergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

в общем, я не помню синтаксис вб, разберетесь. ниже пишется примерно такая шняга:

set Q= v7.CreateObject("Запрос");

T = "Товар = Регистр.ОстаткиТоваров.Товар;Кол = Регистр.ОстаткиТоваров.ОстатокТовара;Функция Остаток = КонОст(Кол);Условие (Товар.Код=8186);Группировка Товар;";

Q.Выполнить(T);

MsgBox Q.Остаток
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38203122
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрSlash232,

Код: sql
1.
MsgBox Reg.СводныйОстаток(spr.ТекущийЭлемент(),,,"ОстатокТовара")



Пишет ошибку не совпадение типа!
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38203252
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Ну напишите в 1С процедуру, а из VB ее дергайте. Просто я нечасто 1С использую в качестве OLE поэтому и непомню точно синтаксис. Так что для вас лучше будет:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim v7 As Object
st = " /D" & """\\Natali\1sp\""" & " /N " & """ааа""" & " /P" & """111"""
Set v7 = CreateObject("v77.Application")
result = v7.Initialize(v7.RMTrade, st, "yes_SPLASH_SHOW")
DoEvents
If Not result = True Then
    MsgBox "Соединение с 1С не установлено!"
    Exit Sub
Else
Set res = v7.EvalExpr("НайтиНашОстаток(8186)")
MsgBox res
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38203289
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,

нельзя увы трогать 1С, нужно именно через OLE VB
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38203471
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Ну тада ОЙ. Там работы на 10 минут отсилы. Но раз так принципиально то играйтесь с моей подсказкой, я просто непомню как правильно из VB послать OLE. Думаю поисковиком найдете, ну или методом тыка.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38204231
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psergej,

Все время возвращает 0 ((

Помогите пожста кто знает!
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38204295
psergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232psergej, Все время возвращает 0 (( Помогите пожста кто знает!
это хорошо, вероятно код товара текстовый. приведите пример кода товара как он выглядит в 1с. приведите описание структуры данных справочника Товары, как Вы делали ранее.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38204755
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код товара действительно текстовый. Вопрос так и не решил(
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38204760
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код товара текстовый состоит из 8 символов. Если код 4-значный то в базе код выглядит как четыре пробела и сам код, если код 3-х значный соответственно 5 пробелов и код.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38204794
psergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232Код товара текстовый состоит из 8 символов. Если код 4-значный то в базе код выглядит как четыре пробела и сам код, если код 3-х значный соответственно 5 пробелов и код.
ага, тогда надо
Условие (Товар.Код=8186);
поменять на
Условие (СокрЛП(Товар.Код)=""8186"");
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38204859
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо работает!, но очень медленно... Есть еще какие нибудь альтернативы?
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38204904
psergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232Спасибо работает!, но очень медленно... Есть еще какие нибудь альтернативы?
медленно из-за запуска ком-сервера, при повторном обращении, например в цикле по списку товара, оно будет быстрее возвращать значение. разумеется, в цикле не стоит инициализировать ком сервер :)
можно ускориться значительно, если баз на скл-сервере - прямым запросом к скл.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38205325
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если через sql нельзя, то какие варианты тогда? Если можно пример кода.. Спасибо за помощь
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38206189
psergej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232А если через sql нельзя, то какие варианты тогда? Если можно пример кода.. Спасибо за помощь
с версией дбф только через ком-соединение.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38206409
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно, а если я хочу получить остаток товара не используя запрос, т.е. одновременно с тем как я получаю наименование какой код нужен?
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38206805
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Я ж вам сказал - напишите в 1С процедуру и дергайте ее. Собственно это лучший вариант для ДБФ.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38207279
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно код процедуры?? И если не сложно объясните как её создать? Спасибо
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38207690
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

В 1С в Глобальный модуль вставляем код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Функция глОстатокVB(тов) Экспорт
	Перем знТов;
	КодТовара=СокрЛП(тов);
	знТов="0; ";
	Если СтрДлина(КодТовара)>0 Тогда
		спрТов=СоздатьОбъект("Справочник.Товары");
		Если СтрДлина(КодТовара)<Метаданные.Справочник("Товары").ДлинаКода Тогда
			СчетчикЦикла = Метаданные.Справочник("Товары").ДлинаКода-СтрДлина(КодТовара);
			Для к=1 По СчетчикЦикла Цикл
				КодТовара=" "+КодТовара;
			КонецЦикла;
			СчетчикЦикла = "";
		КонецЕсли;
		Если спрТов.НайтиПоКоду(КодТовара,0)>0 Тогда
			Товар=спрТов.ТекущийЭлемент();
			знТов=Регистр.ОстаткиТоваров.СводныйОстаток(Товар,,,"ОстатокТовара")+"; "+СокрЛП(Товар.Наименование);
			Товар="";
		КонецЕсли;
		спрТов="";
	КонецЕсли;
	Возврат знТов;
КонецФункции



У вас:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim v7 As Object
st = " /D" & """\\Natali\1sp\""" & " /N " & """ааа""" & " /P" & """111"""
Set v7 = CreateObject("v77.Application")
result = v7.Initialize(v7.RMTrade, st, "yes_SPLASH_SHOW")
DoEvents
If Not result = True Then
    MsgBox "Соединение с 1С не установлено!"
    Exit Sub
Else

TovKode=8186;
Set res = v7.EvalExpr("глОстатокVB(TovKode)")
MsgBox res


По идее должно вернуть остаток и наименование разделенные точкой с запятой. Но вы в коде 1С можете сами поправить что вам вернуть и в каком виде.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38207697
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TovKode поправьте, а то я кавычки пропустил.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38207807
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромное!!!! Только маленькая просьба переделать код 1С так чтобы возвращало исключительно Остаток товара без его наименования (честно говоря плохо ориентируюсь в 1С и сроки поджимают).
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38207837
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Функция глОстатокVB(тов) Экспорт
	Перем знТов;
	КодТовара=СокрЛП(тов);
	знТов=0;
	Если СтрДлина(КодТовара)>0 Тогда
		спрТов=СоздатьОбъект("Справочник.Товары");
		Если СтрДлина(КодТовара)<Метаданные.Справочник("Товары").ДлинаКода Тогда
			СчетчикЦикла = Метаданные.Справочник("Товары").ДлинаКода-СтрДлина(КодТовара);
			Для к=1 По СчетчикЦикла Цикл
				КодТовара=" "+КодТовара;
			КонецЦикла;
			СчетчикЦикла = "";
		КонецЕсли;
		Если спрТов.НайтиПоКоду(КодТовара,0)>0 Тогда
			Товар=спрТов.ТекущийЭлемент();
			знТов=Регистр.ОстаткиТоваров.СводныйОстаток(Товар,,,"ОстатокТовара");
			Товар="";
		КонецЕсли;
		спрТов="";
	КонецЕсли;
	Возврат знТов;
КонецФункции
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38207843
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если передашь неправильный код (в 1С ненайдет), то тоже вернет 0. Если нужно что-то другое то в начале меняешь ноль на что необходимо
Код: sql
1.
знТов=0;

, если нужно строку то ставь кавычки как в коде выше.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38207862
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выскакивает ошибка... Что делать?
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38208031
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232Выскакивает ошибка... Что делать?
Ну а про кавычки я для кого писал?
Код: sql
1.
Set res = v7.EvalExpr("глОстатокVB("+TovKode+")")


Вот только одинарные или нет я точно непомню. Просто с VB работал лет 15 назад, еще в школе.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38208407
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Set res = v7.EvalExpr("глОстатокVB(" & TovKode & ")")



Ты имел ввиду это?? Если да то на это выскакивает ошибка несовпадение типа! Что не так?
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38208449
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал и TovKode=8186 и TovKode="8186" все равно не совпадение типа!
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38209212
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Ну попробуй
Код: sql
1.
Set res = v7.EvalExpr("глОстатокVB(8186)")


У меня просто нет времени еще и VB вспоминать. Как загнать 8186 в переменную сам додумай, это чистый VB.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38209452
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрSlash232,

Ну попробуй
Код: sql
1.
Set res = v7.EvalExpr("глОстатокVB(8186)")


У меня просто нет времени еще и VB вспоминать. Как загнать 8186 в переменную сам додумай, это чистый VB.

Дело не в коде VB а в функции 1С. Ошибка при всех возможных вариантах Несовпадение типа!
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38209533
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232Дело не в коде VB а в функции 1С. Ошибка при всех возможных вариантах Несовпадение типа!
Ну покажи ошибку, я ж не телепат.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38209693
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка 13 Несовпадение типа
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38209846
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Скрин давай. Неможет 1С такое валить.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38209861
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38209877
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slash232,

Ну это тебе твой VB выдает а не 1С. Код для 1С написан правильно. Тебе только осталось дернуть выполнение и все. Если сам неможешь методом тыка найти правильное написание - найди того кто сможет, у меня нет времени тыкаться в то что я давно забросил.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38210435
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сказал что не один тип данных VisualBasic как вводное данное твоей функции не подходит ==> проблема в функции.
...
Рейтинг: 0 / 0
VB и 1С как получить остатки товаров?
    #38213771
Slash232
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы проблему не решил(
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / [игнор отключен] [закрыт для гостей] / VB и 1С как получить остатки товаров?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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