Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/131: Рейтинг темы: голосов - 131, средняя оценка - 4.60
Xourym

Найти склад по наименованию

09.07.2008, 10:52. Показов 26176. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Я новичок, сразу скажу. Суть задачи: имеются справочники контрагентов и складов. Есть определённая группа клиентов, наименование которых одинаково с наименованием складов. Нужно, чтобы при обнаружении такого контрагента при создании документа перемещения автоматически устанавливался соответствующий склад. То, что я пишу - не работает. Причина мне не ясна.

Функция проверки соответствия клиента складу:

Code
1
2
3
4
5
6
7
8
Функция СкладПалатки(Палатка)
Спр=СоздатьОбъект("Справочник.Склады");
Спр.НайтиПоНаименованию(Палатка,0);
Если Спр.Выбран()>0 Тогда
Возврат Спр.Склад;
КонецЕсли;
Возврат 0;
КонецФункции
При создании документа перемещения:

Code
1
Док.СкладПолучатель=СкладПалатки(ТЗОкДоки.Куст.Наименование);
ТЗОкДоки.Куст.Наименование имеет нужное значение согласно данным отладчика, а вот функция не работает. И после получения им управления модуль просто заканчивает свою работу. (Возможно, Возврат 0 этому способствует, не суть важно).

Альтернативным вариантом пробовалось создать дополнительный справочник соответствия клиентов складам, но мне показалось это не очень удобным. Но и не работало так же.

Подскажите, где именно я не так делаю?

Заранее спасибо.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.07.2008, 10:52
Ответы с готовыми решениями:

Плевое дело - найти товар по наименованию
Всем хорош и удал метод "НайтиПоНаименованию". Только в жизни не все так просто. Иногда нужно найти строку спр-ка по совпадению...

Как по наименованию найти нужный обьект или массив в JSON
К примеру у меня есть JSON полученный в ответ на запрос к API Places и мне нужно в этом JSON пройти все объекты массива results и найти...

БД склад запчастей: Каким образом можно модифицировать схему, оставив только 2 сущности, СКЛАД и РЕЦЕПТ
Ребятки, помогите) Вообщем посмотрите схему, каким образом можно ее модифицировать, оставив только 2 сущности, СКЛАД и РЕЦЕПТ.. Ну что...

11
VyKymk
09.07.2008, 11:11
у тебя функция в любом случае возвращает 0. попробуй так


Code
1
2
3
4
5
6
7
8
9
Функция СкладПалатки(Палатка)
Спр=СоздатьОбъект("Справочник.Склады");
Спр.НайтиПоНаименованию(Палатка,0);
Если Спр.Выбран()>0 Тогда
Возврат Спр.Склад;
иначе
Возврат 0;
КонецЕсли;
КонецФункции
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
09.07.2008, 11:12
а зачем ставить "возврат 0", если у тебя уже стоит "возврат спр.склад"?

получается что у тебя в условии возвращается значение, а после этого стоит "возврат 0" и в итоге в любом случае функция возвращает 0. какая бы проверка не была.
0
VyKymk
09.07.2008, 11:20
Цитата Сообщение от GorlanovMax
а зачем ставить "возврат 0", если у тебя уже стоит "возврат спр.склад"?

получается что у тебя в условии возвращается значение, а после этого стоит "возврат 0" и в итоге в любом случае функция возвращает 0. какая бы проверка не была.
во и я о том же
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
09.07.2008, 11:47
для Viking
у тебя функция в любом случае возвращает 0. попробуй так...
Это неверно. Если склад найден по наименованию, функция вернет Реквизит "Склад" справочника "Склады"
0
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
09.07.2008, 16:40
Да. Ну тогда видимо так. Валерий Борисович, если я не прав то поправьте меня


Code
1
2
3
4
5
6
7
8
9
Функция СкладПалатки(Палатка)
Спр=СоздатьОбъект("Справочник.Склады");
Спр.НайтиПоНаименованию(Палатка,0);
Если Спр.Выбран()>0 Тогда
Возврат Спр.ТекущийЭлемент();
иначе
Возврат 0;
КонецЕсли;
КонецФункции
0
0 / 0 / 0
Регистрация: 11.11.2005
Сообщений: 584
09.07.2008, 18:04
Хоспате, що вы гоните?

Code
1
2
3
4
5
6
7
8
НайтиПоНаименованию(<?>,,);
FindByDescr(<?>,,);
Синтаксис:
НайтиПоНаименованию(<Наименование>,<Режим>,<ФлагПоиска>)
Назначение:
Найти элемент справочника по наименованию.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Следовательно:

Code
1
2
3
4
5
6
7
Функция СкладПалатки(Палатка)
Спр=СоздатьОбъект("Справочник.Склады");
Если Спр.НайтиПоНаименованию(Палатка,0) = 1 Тогда
Возврат Спр.ТекущийЭлемент();
КонецЕсли;
Возврат 0;
КонецФункции
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
09.07.2008, 18:48
Проблема, конечно, выеденного яйца не стоит.
Скорее всего, именно так.
Возврат Спр.ТекущийЭлемент();

Но вдруг ему нужен именно РЕКВИЗИТ "Склад" справочника "Склады" (всякое бывает !) ?
Тогда Возврат Спр.Склад написано корректно, но
Док.СкладПолучатель должен иметь тот же тип, что и Спр.Склад, вот и все :mellow:
0
VyKymk
10.07.2008, 07:21
Цитата Сообщение от Zab
Следовательно:

Код
Функция СкладПалатки(Палатка)
Спр=СоздатьОбъект("Справочник.Склады");
Если Спр.НайтиПоНаименованию(Палатка,0) = 1 Тогда
Возврат Спр.ТекущийЭлемент();
КонецЕсли;
Возврат 0;
КонецФункции

После КонецЕсли у тебя стоит "Возврат 0" и как итог выход из функции со значением 0

для vbs

он спрашивал почему его функция заканчивает работу не давая нужных данных, я и ответил, а по одной функции тяжеловато понять чето он от нее ждет но явно не ноль
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
10.07.2008, 10:15
Для Viking
После КонецЕсли у тебя стоит "Возврат 0" и как итог выход из функции со значением 0
Разве не очевидно, что на Возврат 0 мы попадем ТОЛЬКО в случае, когда Склад не найден ?
0
Xourym
10.07.2008, 11:00
Тема тут появляется не сразу, оказывается. Я думал, что премодерация стоит и тема не прошла.
Вчера решил вопрос.

Да, проблема была в том, что нужно было ставить в возврат не Спр.Склад, а Спр.ТекущийЭлемент(). Ну и поменял в коде знак ">0" на "=1", хотя по-моему не суть важно.
0 / 0 / 0
Регистрация: 15.06.2008
Сообщений: 278
10.07.2008, 11:06
ну и слава богу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.07.2008, 11:06
Помогаю со студенческими работами здесь

Массив записей о данных банков, нужно найти по наименованию банк и вывести некоторые данные о нем
В общем задание звучало так: представить в виде массива записей данные о банках (название, № лицензии, кол-во клиентов, общий размер долга...

Помогите найти конфигурацию Торговля и Склад
Помогите найти типовую белорусскую конфигурацию Торговли и Склад 7.7 желательно для SQL версии. Или может скинте на мыло. Заранее...

1c7.7: Торговля и склад, как найти нужную форму или слой
Вопрос совсем дурацкий, я новичок. Есть рабочая база 1с, мне необходимо внести изменения в одну из форм. Перелазил по всей...

JOIN по неявному наименованию
Добрый день. Столкнулся с проблемой, не могу сделать LEFT JOIN посколько в первой таблицу (fio) я имею значения: id name 1 ...

1c77 Быстрый поиск по наименованию
Есть 2 базы ТиС. В общем, они более-менее одинаковы с точки зрения конфигурации. Но в одной (9.27) быстрый поиск по букве &quot;О&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru