Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / предприятие 8.1 / 21 сообщений из 21, страница 1 из 1
06.12.2010, 16:11
    #36997556
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
создал внешнюю обработку
добавил реквизит (тип :СправочникСсылка.Склады)
добавил его на форму
хочется чтобы в процедуре

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

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



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

да просто... зашивать в код такие вещи: справочники.Склады.НайтиПоКоду("000000001") на постоянку крайне нежелательно...
...
Рейтинг: 0 / 0
07.12.2010, 09:58
    #36998589
Diego_Iv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
Может лучше привязать это дело к Основному складу пользователя?
А то мало ли, название склада или код сменит кто?
...
Рейтинг: 0 / 0
07.12.2010, 13:59
    #36999375
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
Diego_Iv,
через константу получать , правильно понял?
...
Рейтинг: 0 / 0
07.12.2010, 14:01
    #36999384
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
Регистр сведений
...
Рейтинг: 0 / 0
07.12.2010, 14:02
    #36999392
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
Кстати, если у тебя отчет/обработка просто сохрани настройки и поставь флажок чтоб с этими же настройками и открывался.
Так можно для каждого пользователя настроить персонально. И ни строчки кода.
...
Рейтинг: 0 / 0
07.12.2010, 14:27
    #36999485
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
The Dim!,
да в 7 версии помню было такое
здесь че то не нашел
кстати не подскажешь как до штрихкода товара добраться программно?
...
Рейтинг: 0 / 0
07.12.2010, 14:58
    #36999622
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
сделал в конструкторе запросов
вроде работает
Код: 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
07.12.2010, 15:05
    #36999650
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
чуть поправил

Код: 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
07.12.2010, 16:25
    #36999918
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
кому надо выложил код создания документа из 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
07.12.2010, 17:40
    #37000154
mista2009
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
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
07.12.2010, 19:24
    #37000443
Господин ПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
не читал т.к. код не очень. Но не надо отчаиваться... каждый должен написать некий объем кода за который будет потом стыдно. Это нормально
...
Рейтинг: 0 / 0
07.12.2010, 19:54
    #37000489
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
Господин ПЖ,
ну да)
а так как лучше организовать процесс создания документа , загружая номенклатуру из dbf файла
т.к мне кажется что эта функция по определению номенклатуры по штрихкоду , содержит запрос и создавать запрос по каждой строке думаю слишком нагружено
...
Рейтинг: 0 / 0
07.12.2010, 20:08
    #37000504
aduka05adm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
mista2009,
а как надо)?
...
Рейтинг: 0 / 0
07.12.2010, 23:10
    #37000796
mista2009
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
предприятие 8.1
aduka05admmista2009,
а как надо)?

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


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

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

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


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