Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   НайтиСсылки() - можно использовать в контексте формы документа? (http://forums.kuban.ru/f1040/najtissylki_-_mozhno_ispol-zovat-_v_kontekste_formy_dokumenta-6589962.html)

Opener 13.03.2015 11:29

НайтиСсылки() - можно использовать в контексте формы документа?
 
7.7. ОУ, релиз 023
Прилепил кнопочку, прописал процедуру и вот:

НайтиСсылки(<<?>>Товар,Тз);
{Документ.УдалениеТоваров.Форма.Модуль(11)**: Слишком много фактических параметров

Это пятница сегодня такая или я что-то пропустил в этой жизни?

user1C 13.03.2015 11:58

"[em]Это пятница сегодня такая или я что-то пропустил в этой жизни?[/em]" - второе...

так в модуле формы дока писать [u][b]НЕ НАДО[/b][/u]
Процедура НайтиСсылки()
НайтиСсылки(Товар,Тз);
КонецПроцедуры

101 13.03.2015 11:59

НайтиСсылки(??? товар эточойта ?

VZ 13.03.2015 12:00

Сообщение ругается на [em][b]Товар[/b][/em]. Значит, в параметрах - недопустимый тип значения.

И почему [em]релиз 023[/em]? А не отлаженный 27?

Opener 13.03.2015 12:03

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

СсылкиТек=Тз.КоличествоСтрок();
КонецЦикла;
КонецПроцедуры

Opener 13.03.2015 12:04

Блин...каша какая...это я Таб нажал...

Opener 13.03.2015 12:05

Вот, процедура
Процедура НайтиСсылки()
ТЗ=СоздатьОбъект("ТаблицаЗначений");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 цикл
НайтиСсылки(Товар,Тз);
КонецЦикла;
КонецПроцедуры

Opener 13.03.2015 12:06

2) Ругается не при выполнении а проверке синтаксиса...

Opener 13.03.2015 12:07

3) Товар в параметре - это значение, типа, справочник

user1C 13.03.2015 12:19

(4-6)
прочти в (1) выделенное жирным и подчеркнутое, раз 50...

Opener 13.03.2015 12:21

А как надо?

Opener 13.03.2015 12:22

Ты бы еще двоеточие поставил....чтобы понятнее было к чему твое "не надо" относится...

user1C 13.03.2015 12:29

(10)
глаз конкретно замылился?))
надо так[b]:[/b]
Процедура ИмяПроцедурыОтличающеесяОт_НайтиСсылки_()
НайтиСсылки(Товар,Тз);
КонецПроцедуры

VZ 13.03.2015 12:32

Хоспадя, воля твоя...
СписокТоваров=СоздатьОбъект("СписокЗначений");
ВыбратьСтроки();
Пока ПолучитьСтроку()=2 Цикл
СписокТоваров.Установить(Строка(Товар.ПолныйКод()+" "+Товар.Наименование),Товар);
КонецЦикла:
Если СписокТовара.РазмерСписка()=0 Тогда
сообщить("Пшол [filolog]нах[/filolog], оборванец");
Иначе
НайтиСсылки(СписокТоваров,ТЗ);
КонецЕсли;

101 13.03.2015 12:40

никто не задумался почему документ называется удалениетоваров ;))) и зачем там найти ссык... тьпу ссылки ;)))

Opener 13.03.2015 12:41

12))))) Ну, блин!!! Я же говорил ПЯТНИЦА сегодня такая...
Спасибо тебе добрый человек - пользователь 1С
А то я почти совсем уже веру в торжество разума потерял...

VZ 13.03.2015 12:44

+13 P.S. 1.По хорошему, надо еще проверять полноту строк на ПустоеЗначение(Товар) (оператору доверия нет!).
2. Заместо [em]Строка(Товар.ПолныйКод()+ " "+Товар.Наименование)[/em] кошернее юзать [em]ЗначениеВСтрокуВнутр(Товар)[/em]

101 13.03.2015 12:48

(16) выбран - аналогично имхо по скорости будет ...

101 13.03.2015 12:51

(17)+ имелось ввиду любую проверку, кроме пустоезначение ... (оно конешно быстрее чем выбран но ... ничонискажет если ссылка осталась а товара нет)

Opener 13.03.2015 12:51

16) Спасибо VZ - обязательно буду проверять...

VZ 13.03.2015 12:55

17-101 > Это не важно ;)
Что важно: ТС почему-то считает, что его ТЗ будет [b]дополняться[/b] при пробежки по строкам (на самом деле - формировться по новому). Наверно, думает что разработчики платформы угадали его желания ;)
ТС не учитывает, что строки могут содержать одинаковые значения.

И вообще я не доверяю тем, кто использует древний релиз.

101 13.03.2015 13:16

(20) ну если он потом перевыгружает ссылки в новую ТЗ - то почему бы и нет ... хотя хз, мну ваще обескуражен самой идеей , хотя некое зерно в данном случае есть - типа сохранить все данные в текстовом виде в документе а сам товар удалить ... но МлийАА зачем ??? или еще и из ссылок его убацать ? намертво ? ну как бы для истории что ли ? ну и нафек такая история без ссылок ??? нипанимаю - если только один товар заменяется на некий обезличенный для схлопывания истории , ну ладно, а с регистрами чоу делать ?
ЗЫ понимаю когда например прайсовую позицию меняют ... ну там да - история логична , она не основа ...

Opener 13.03.2015 13:35

Документ собирает товар с одинаковыми наименованиями и дает данные по их остаткам, количеству ссылок на них, ценах, датах последнего поступления и т.д. После заполнения менеджер выбирает, какой товар оставить а какой пометить на удаление. При проведении документа убираемый товар заменяется на оставляемый везде, где на него есть ссылки. Такие дела...

VZ 13.03.2015 13:41

22-Opener > Прэлестно...

user1C 13.03.2015 14:09

(22)
на заметку в будущем, чтобы избежать подобной ситуации "[em]товар с одинаковыми наименованиями[/em]"
номенклатурой в базе должен мочь заниматься один(2,3...) пользователь с правами(в базе) и обязанностями(в должностной инструкции) + со всеми вытекающими карами, когда наступит подобный случай по его вине...

Opener 13.03.2015 14:44

Да, это сделано... и автор нового элемента фиксируется... Тут ситуация немного не стандартная. Товар заносится в базе Опта а потом обработкой перекидывается в базу Розницы. Когда этот товар попал второй раз в Розницу - уже не определить. Базе 10 лет скоро будет. Поэтому и названия [b]одинаковые[/b]. Проверил обработку - все нормально. Ну, посмотрим, как он теперь появится в будущем... 8)

101 13.03.2015 15:53

(25) УРБД что ли ? для этого делается ЦЕНТРАЛЬНАЯ база в которую кроме справочников ничо не заводят, или любая другая база в которую только справочники и заводят а в остальные базы - запрет ...

user1C 13.03.2015 23:43

(1)+
[img]http://s1.hostingkartinok.com/uploads/images/2015/03/2c97330350e63e86f83fa233d0451f7a.png[/img]

user1C 13.03.2015 23:52

(27)+++
Прроцедура НайтиСсылки() Сообщить("Что-то здесь не так..."); //(с) user1C


Текущее время: 06:30. Часовой пояс GMT +3.