![]() |
![]() |
![]() |
|
Как бы переделать функцию. | ☑ | ||
---|---|---|---|---|
0
zippygrill
04.06.13
✎
10:42
|
не поможете переделать функцию? хочется избавиться от константы и чтобы не переделать когда новый склад появиться. это в идеале :)
функция ОпределитьНомерМагазина(текСсылка) экспорт типДок = типЗнч(текСсылка); склад1 = "<не заполнено>"; склад2 = "<не заполнено>"; складМагазин1 = _допКонстантаПолучить("СкладМагазин1"); складМагазин2 = _допКонстантаПолучить("СкладМагазин2"); если тип("ДокументСсылка.ВозвратТоваровПоставщикуИзНТТ") = типДок или тип("ДокументСсылка.ПоступлениеТоваровУслугВНТТ") = типДок или тип("ДокументСсылка.СписаниеТоваров") = типДок тогда склад1 = текСсылка.Склад; склад2 = "<не заполнено>"; иначеЕсли тип("ДокументСсылка.ПеремещениеТоваров") = типДок тогда склад1 = текСсылка.СкладОтправитель; склад2 = текСсылка.СкладПолучатель; иначе возврат 0; конецЕсли; если складМагазин1 = склад1 или складМагазин1 = склад2 тогда возврат 1; иначеЕсли складМагазин2 = склад1 или складМагазин2 = склад2 тогда возврат 2; иначе возврат 0; конецЕсли; конецФункции |
|||
1
Господин ПЖ
04.06.13
✎
10:43
|
за такие функции надо руки выдергивать и бить ими по щекам
|
|||
2
zippygrill
04.06.13
✎
10:44
|
(1) честно признаюсь что не моя.
|
|||
3
Господин ПЖ
04.06.13
✎
10:44
|
(2) дада... доставайте вашего друга, показывайте
|
|||
4
skunk
04.06.13
✎
10:46
|
||||
5
zippygrill
04.06.13
✎
10:47
|
(4) так и думал что кто-нибудь скинет эту ссылку :). но честное слово не я писал :)
|
|||
6
Maxus43
04.06.13
✎
10:47
|
склад с подразделением обычно связан. вот запросом выдёргивай по разным подразделениям склады например... я хз что тут вобще за логика. Всё переделать
|
|||
7
skunk
04.06.13
✎
10:49
|
надо у друга спросить, чего он хотел добиться данной функцией
|
|||
8
Ненавижу 1С
гуру
04.06.13
✎
10:49
|
сделайте у склада реквизит "НомерМагазина"
|
|||
9
zippygrill
04.06.13
✎
10:50
|
(6) вот и хочу полностью переделать
(8) регистр :) |
|||
10
Maxus43
04.06.13
✎
10:50
|
реквизит НомерМагазина добавь в справочник склады в конце концов
|
|||
11
Ненавижу 1С
гуру
04.06.13
✎
10:50
|
(9) ну хочешь регистр, но ради этого заводить регистр сведений?
|
|||
12
zippygrill
04.06.13
✎
10:51
|
(10) у нас действует политика "девственная" конфигурация :)
|
|||
13
zippygrill
04.06.13
✎
10:53
|
а может быть для подразделение а не к складу?
|
|||
14
Господин ПЖ
04.06.13
✎
10:57
|
>у нас действует политика "девственная" конфигурация
судя по коду вас давно пора ее лишить... |
|||
15
zippygrill
04.06.13
✎
11:01
|
да ладно тебе Д'артаньян!
|
|||
16
1Сергей
04.06.13
✎
11:03
|
Ещё есть Свойства и Категории, дабы не лишать девственности...
|
|||
17
zippygrill
04.06.13
✎
11:08
|
(16) знаю знаю :)
|
|||
18
zippygrill
04.06.13
✎
11:09
|
+ (17) и скорее всего свойства и буду использовать дабы не добавить справочник только для этого.
|
|||
19
zippygrill
05.06.13
✎
09:48
|
что-то совсем непродуктивная неделя у меня.
вот что получилось. как-то смущяет конструкция когда тип документа ПеремещениеТоваров. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Значение КАК КлючьНомерМагазина |ИЗ | Документ." + СсылкаДокумента.Метаданные().Имя + " КАК ДокументРТ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО ДокументРТ.Склад = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &СвойствоСоответствиеРТиНомерМагазина) |ГДЕ | ДокументРТ.Ссылка = &Ссылка | И ЗначенияСвойствОбъектов.Значение ЕСТЬ НЕ NULL "; СвойствоСоответствиеРТиНомерМагазина = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Соответствие РТ и номер магазина"); Запрос.УстановитьПараметр("СвойствоСоответствиеРТиНомерМагазина", СвойствоСоответствиеРТиНомерМагазина); Запрос.УстановитьПараметр("Ссылка", СсылкаДокумента); //Меняем запрос если это ПеремешениеТоваров Если Тип("ДокументСсылка.ПеремещениеТоваров") = ТипЗнч(СсылкаДокумента) Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "ПО ДокументРТ.Склад = ЗначенияСвойствОбъектов.Объект", "ПО ДокументРТ.СкладОтправитель = ЗначенияСвойствОбъектов.Объект"); Если Запрос.Выполнить().Выбрать().Следующий() Тогда ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать(); Возврат СокрЛП(ВыборкаДетальныеЗаписи.КлючьНомерМагазина); Иначе З = Новый Запрос; З.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Значение КАК КлючьНомерМагазина |ИЗ | Документ." + СсылкаДокумента.Метаданные().Имя + " КАК ДокументРТ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО ДокументРТ.СкладПолучатель = ЗначенияСвойствОбъектов.Объект | И (ЗначенияСвойствОбъектов.Свойство = &СвойствоСоответствиеРТиНомерМагазина) |ГДЕ | ДокументРТ.Ссылка = &Ссылка | И ЗначенияСвойствОбъектов.Значение ЕСТЬ НЕ NULL "; З.УстановитьПараметр("СвойствоСоответствиеРТиНомерМагазина", СвойствоСоответствиеРТиНомерМагазина); З.УстановитьПараметр("Ссылка", СсылкаДокумента); Результат = З.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат СокрЛП(ВыборкаДетальныеЗаписи.КлючьНомерМагазина); Иначе Возврат ""; КонецЕсли; КонецЕсли; КонецЕсли; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат СокрЛП(ВыборкаДетальныеЗаписи.КлючьНомерМагазина); Иначе Возврат ""; //Всегда проверить на пусту строку везде где используется функция!! КонецЕсли; |
|||
20
Ненавижу 1С
гуру
05.06.13
✎
09:50
|
надеюсь эта функция вызывается в цикле?
|
|||
21
zippygrill
05.06.13
✎
09:50
|
*смущает
|
|||
22
zippygrill
05.06.13
✎
09:52
|
причем тут вызов из цикла? :) из любой коллекции документов(да, тут цикл конечно) вызываеться это функция.
|
|||
23
Ненавижу 1С
гуру
05.06.13
✎
09:53
|
(22) ну хвост тебе в ж...
запрос в цикле тут не любят )) |
|||
24
zippygrill
05.06.13
✎
09:59
|
))) у меня в конвертации есть массив документов которых нужно обработать/преобразовать для передачи в другой ИБ(это в общем :)) и там естественно нужно заполнить одно поле(служебное) документа. да, так получилось что циклом обхожу документы :)
|
|||
25
zippygrill
05.06.13
✎
10:00
|
возможно да, нужно пересмотреть эту обработку документов чтобы запросы небыли в цикле :)
|
|||
26
zippygrill
05.06.13
✎
10:09
|
а так функция сгодится? :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |