powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / предприятие 8.1
21 сообщений из 21, страница 1 из 1
предприятие 8.1
    #36997556
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создал внешнюю обработку
добавил реквизит (тип :СправочникСсылка.Склады)
добавил его на форму
хочется чтобы в процедуре

Код: plaintext
Процедура ПриОткрытии()
у этого реквизита стояло уже значение
допустим главный склад
че то никак не соображу как это сделать
Код: plaintext
1.
2.
3.
 умолсклад=справочники.Склады.НайтиПоКоду("000000001").ПолучитьОбъект();   
		сообщить(умолсклад)   ;

вроде бы так я нахожу объект , но толку мало , мне надо установить значение реквизита
а СправочникСсылка.Склады пишет что запрещено установление реквизита(т.к он только для чтения)
я ниче изменять не хочу , просто хочу чтобы по умолчанию там стоял главный склад
...
Рейтинг: 0 / 0
предприятие 8.1
    #36997575
Сисой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разница между объектом и ссылкой понятна?
Код: plaintext
1.
2.
3.
4.
   умолсклад=справочники.Склады.НайтиПоКоду("000000001");   
		сообщить(умолсклад)   ;



Должно работать.
...
Рейтинг: 0 / 0
предприятие 8.1
    #36997615
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сисой,
заработало
Код: plaintext
 реквизит1=справочники.Склады.НайтиПоКоду("000000001");
спасибо
...
Рейтинг: 0 / 0
предприятие 8.1
    #36997641
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а теперь случайно меняем код у склада и удивляемся
...
Рейтинг: 0 / 0
предприятие 8.1
    #36997653
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvm,
это как?)
...
Рейтинг: 0 / 0
предприятие 8.1
    #36997903
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admtvm,
это как?)

да просто... зашивать в код такие вещи: справочники.Склады.НайтиПоКоду("000000001") на постоянку крайне нежелательно...
...
Рейтинг: 0 / 0
предприятие 8.1
    #36998589
Diego_Iv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может лучше привязать это дело к Основному складу пользователя?
А то мало ли, название склада или код сменит кто?
...
Рейтинг: 0 / 0
предприятие 8.1
    #36999375
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Diego_Iv,
через константу получать , правильно понял?
...
Рейтинг: 0 / 0
предприятие 8.1
    #36999384
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Регистр сведений
...
Рейтинг: 0 / 0
предприятие 8.1
    #36999392
The Dim!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если у тебя отчет/обработка просто сохрани настройки и поставь флажок чтоб с этими же настройками и открывался.
Так можно для каждого пользователя настроить персонально. И ни строчки кода.
...
Рейтинг: 0 / 0
предприятие 8.1
    #36999485
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The Dim!,
да в 7 версии помню было такое
здесь че то не нашел
кстати не подскажешь как до штрихкода товара добраться программно?
...
Рейтинг: 0 / 0
предприятие 8.1
    #36999622
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал в конструкторе запросов
вроде работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
ВЫБРАТЬ
	             |	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	             |	ТоварыНаСкладахОстатки.Склад КАК Склад,
	             |	ТоварыНаСкладахОстатки.Номенклатура.Код КАК Код,
	             |	ТоварыНаСкладахОстатки.Номенклатура.Код КАК НоменклатураКод1,
	             |	Штрихкоды.Штрихкод КАК Штрих,
	             |	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество
	             |ИЗ
	             |	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
	             |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
	             |		ПО ТоварыНаСкладахОстатки.Номенклатура = Штрихкоды.Владелец
	             |ГДЕ
	             |	ТоварыНаСкладахОстатки.Склад = &Склад
	             |
	             |СГРУППИРОВАТЬ ПО
	             |	ТоварыНаСкладахОстатки.Склад,
	             |	ТоварыНаСкладахОстатки.Номенклатура,
	             |	Штрихкоды.Штрихкод,
	             |	ТоварыНаСкладахОстатки.Номенклатура.Код,
	             |	ТоварыНаСкладахОстатки.Номенклатура.Код,
	             |	ТоварыНаСкладахОстатки.КоличествоОстаток
	             |
	             |УПОРЯДОЧИТЬ ПО
	             |	Номенклатура
...
Рейтинг: 0 / 0
предприятие 8.1
    #36999650
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чуть поправил

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Процедура КнопкаВыполнитьНажатие(Кнопка)
	// Вставить содержимое обработчика.
Запрос= новый запрос ;
запрос.Текст="ВЫБРАТЬ
	             |	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	             |	ТоварыНаСкладахОстатки.Склад КАК Склад,
	             |	Штрихкоды.Штрихкод КАК Штрих,
	             |	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество
	             |ИЗ
	             |	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
	             |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
	             |		ПО ТоварыНаСкладахОстатки.Номенклатура = Штрихкоды.Владелец
	             |ГДЕ
	             |	ТоварыНаСкладахОстатки.Склад = &Склад
	             |
	             |СГРУППИРОВАТЬ ПО
	             |	ТоварыНаСкладахОстатки.Склад,
	             |	ТоварыНаСкладахОстатки.Номенклатура,
	             |	Штрихкоды.Штрихкод,
	             |	ТоварыНаСкладахОстатки.КоличествоОстаток
	             |
	             |УПОРЯДОЧИТЬ ПО
	             |	Номенклатура";
времятек=ТекущаяДата();
				
Запрос.УстановитьПараметр("Период",ТекущаяДата())  ;
запрос.УстановитьПараметр("Склад",Реквизит1) ;
Результат=запрос.Выполнить();
макет=получитьмакет("Макет");
табдок=новый табличныйдокумент;
областьшапка     = макет.ПолучитьОбласть("Шапка");
табдок.Вывести(областьшапка);
областстрока=макет.ПолучитьОбласть("строка");
выборкаобщийитог=результат.Выбрать()      ;
Файл = Новый XBase;
Файл.Кодировка = КодировкаXBase.OEM;
Файл.Поля.Добавить("KOD","S", 40 )  ;
Файл.Поля.Добавить("NAME","S", 100 ) ;
Файл.Поля.Добавить("KOL","N", 10 ) ;
Путь = "C:\Temp\" + "ost.DBF";
Файл.СоздатьФайл(Путь);
Файл.Записать();

Файл.ОчиститьФайл();

пока 	выборкаобщийитог.Следующий()      цикл
	Файл.Добавить();
	Файл.KOD =выборкаобщийитог.Штрих ;
	Файл.NAME =выборкаобщийитог.Номенклатура ;
	Файл.KOL =выборкаобщийитог.Количество ;
		
	областстрока.Параметры.Заполнить(выборкаобщийитог)    ;
	табдок.Вывести(областстрока);
	Файл.Записать();
конеццикла;
табдок.Показать();
Файл.Записать();
Файл.ЗакрытьФайл();
КонецПроцедуры

...
Рейтинг: 0 / 0
предприятие 8.1
    #36999918
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кому надо выложил код создания документа из dbf

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Функция ПолучитьТов(Штрих)
ШК="";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
               |	Штрихкоды.Штрихкод КАК Штрихкод,
               |	Штрихкоды.Владелец КАК Владелец
               |ИЗ
               |	РегистрСведений.Штрихкоды КАК Штрихкоды
               |ГДЕ
               |	Штрихкоды.Штрихкод = &Штрих
               |
               |СГРУППИРОВАТЬ ПО
               |	Штрихкоды.Штрихкод,
               |	Штрихкоды.Владелец
               |
               |УПОРЯДОЧИТЬ ПО
               |	Штрихкод УБЫВ"  ;
Запрос.УстановитьПараметр("Штрих",Штрих);
Выб = Запрос.Выполнить().Выбрать();
Если Выб.Следующий() Тогда
ШК=Выб.Владелец;
КонецЕсли;
Возврат(ШК);
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
СтрокаТаблицы=Элементыформы.ТабличноеПоле1.ТекущиеДанные;
  
Путь = "C:\Temp\" + СтрокаТаблицы.Имя;
НДокПост = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НДокПост.Дата= ТекущаяДата();
НДокПост.Склад   = 	реквизит1;
Файл = Новый XBase;
Файл.ОткрытьФайл(Путь,,Истина); //открываем для чтения
Файл.Первая();
Пока НЕ Файл.ВКонце() Цикл
	
	СтрокаТоваров = НДокПост.Товары.Добавить();
	нашастрока=  ПолучитьТов(Файл.KOD);
	СтрокаТоваров.Номенклатура=нашастрока;
	СтрокаТоваров.Количество = Файл.KOL;
	Файл.Следующая();
	
КонецЦикла;
Файл.ЗакрытьФайл();
НДокПост.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры


Процедура ПриОткрытии()
	// Вставить содержимое обработчика.
	реквизит1=справочники.Склады.НайтиПоКоду("000000001");
	НайденныеФайлы = НайтиФайлы ("C:\Temp","*.dbf") ;
	для нач= 0  по НайденныеФайлы.Количество()- 1  Цикл
		      НоваяСтрока=  ТабличноеПоле1.Добавить();
		      НоваяСтрока.Имя =НайденныеФайлы[нач].Имя;
	конеццикла   ;

КонецПроцедуры

...
Рейтинг: 0 / 0
предприятие 8.1
    #37000154
Фотография mista2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admкому надо выложил код создания документа из dbf
+

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
Функция ПолучитьТов(Штрих)
ШК="";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
               |	Штрихкоды.Штрихкод КАК Штрихкод,
               |	Штрихкоды.Владелец КАК Владелец
               |ИЗ
               |	РегистрСведений.Штрихкоды КАК Штрихкоды
               |ГДЕ
               |	Штрихкоды.Штрихкод = &Штрих
               |
               |СГРУППИРОВАТЬ ПО
               |	Штрихкоды.Штрихкод,
               |	Штрихкоды.Владелец
               |
               |УПОРЯДОЧИТЬ ПО
               |	Штрихкод УБЫВ"  ;
Запрос.УстановитьПараметр("Штрих",Штрих);
Выб = Запрос.Выполнить().Выбрать();
Если Выб.Следующий() Тогда
ШК=Выб.Владелец;
КонецЕсли;
Возврат(ШК);
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
СтрокаТаблицы=Элементыформы.ТабличноеПоле1.ТекущиеДанные;
  
Путь = "C:\Temp\" + СтрокаТаблицы.Имя;
НДокПост = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НДокПост.Дата= ТекущаяДата();
НДокПост.Склад   = 	реквизит1;
Файл = Новый XBase;
Файл.ОткрытьФайл(Путь,,Истина); //открываем для чтения
Файл.Первая();
Пока НЕ Файл.ВКонце() Цикл
	
	СтрокаТоваров = НДокПост.Товары.Добавить();
	нашастрока=  ПолучитьТов(Файл.KOD);
	СтрокаТоваров.Номенклатура=нашастрока;
	СтрокаТоваров.Количество = Файл.KOL;
	Файл.Следующая();
	
КонецЦикла;
Файл.ЗакрытьФайл();
НДокПост.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры


Процедура ПриОткрытии()
	// Вставить содержимое обработчика.
	реквизит1=справочники.Склады.НайтиПоКоду("000000001");
	НайденныеФайлы = НайтиФайлы ("C:\Temp","*.dbf") ;
	для нач= 0  по НайденныеФайлы.Количество()- 1  Цикл
		      НоваяСтрока=  ТабличноеПоле1.Добавить();
		      НоваяСтрока.Имя =НайденныеФайлы[нач].Имя;
	конеццикла   ;

КонецПроцедуры



Это пример как ни в коем случае не надо кодить и за что отрывать руки кодерам.
...
Рейтинг: 0 / 0
предприятие 8.1
    #37000443
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не читал т.к. код не очень. Но не надо отчаиваться... каждый должен написать некий объем кода за который будет потом стыдно. Это нормально
...
Рейтинг: 0 / 0
предприятие 8.1
    #37000489
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖ,
ну да)
а так как лучше организовать процесс создания документа , загружая номенклатуру из dbf файла
т.к мне кажется что эта функция по определению номенклатуры по штрихкоду , содержит запрос и создавать запрос по каждой строке думаю слишком нагружено
...
Рейтинг: 0 / 0
предприятие 8.1
    #37000504
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mista2009,
а как надо)?
...
Рейтинг: 0 / 0
предприятие 8.1
    #37000796
Фотография mista2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admmista2009,
а как надо)?

Да всё подряд можно переписывать


Для начал поработай над запросом

Код: plaintext
1.
2.
3.
4.
5.
ВЫБРАТЬ РАЗЛИЧНЫЕ
	Штрихкоды.Владелец
ИЗ
	РегистрСведений.Штрихкоды КАК Штрихкоды
ГДЕ
	Штрихкоды.Штрихкод = &Штрихкод
...
Рейтинг: 0 / 0
предприятие 8.1
    #37000911
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mista2009,
есть ли вариант вообще без запроса обойтись
исключая перебор всего регистра в цикле
...
Рейтинг: 0 / 0
предприятие 8.1
    #37001087
Фотография mista2009
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admmista2009,
есть ли вариант вообще без запроса обойтись
исключая перебор всего регистра в цикле

Можно без запроса, но запросом эффективнее. По крайней мере 1С рекомендует все данные читать запросами.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / предприятие 8.1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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