По возможности помогите

Новая тема
Здравствуйте, уважаемые пользователи и админы.
2 вопроса по 1С 7.7:
1. как программно выбрать документ (не справочник, там все легко: есть "найтипонаименованию", "найтипореквизиту", "найтипокоду". В документах есть "найтидокумент"(документ)" однако ему надо передавать значение типа "документ", а не скажем "документ.накладная", есть "выбратьпозначению", однако и там при передаче переменной типа "документ.накладная", выдается ошибка :"Документ определенного вида!".
2. как программно при создании нового экземпляра справочника, создавать его сразу в какой-либо группе? Методы "этогруппа", принадлежитгруппе", "выборгруппы", "использоватьродителя" работают с уже записанными элементами и служат дополнением при их выборке.

PS. В где в стандартных конфигурациях 1С находятся кнопки и дополнительные команды, например, связанные с формами списка каких-либо справочников? В самой форме списка их нет.

Заранее благодарю за любую помощь.
"Искать надо документ ОПРЕДЕЛЕННОГО ВИДА.

Например:
Док=СоздатьОбъект("Документ.Счет");

Дальше все просто.

Док.НайтиДокумент(ВыбДокумент);

ВыбДокумент должен иметь вид "Счет".


> 2. как программно при создании нового экземпляра справочника, создавать его сразу в какой-либо группе? Методы "этогруппа", принадлежитгруппе", "выборгруппы", "использоватьродителя" работают с уже записанными элементами и служат дополнением при их выборке.

Очень просто.
Перед применением метода Справочника Записать() следует привоить значение атрибута спрвочника Родитель

Например:

Спр.Родитель=ВыбРодитель;

Все.

> PS. В где в стандартных конфигурациях 1С находятся кнопки и дополнительные команды, например, связанные с формами списка каких-либо справочников? В самой форме списка их нет.

Есть. Смотрите внимательнее. Слои проверьте.
"
"1. пишешь, что
док=СоздатьОбъект("Документ");
док.НайтиПоНомеру(<Номердока>,<Датадока>,"накладная");

2. спр.Родитель=ВыбрРодитель; где ВыбрРозитель - это группа справочника

3. Они есть. Нажми на ФормыСписка у справочника в конфигураторе и выбери необходимую. Там они со всеми кнопками."
за пункты 2 и 3 AlexanderVA и Vladko большое спасибо.

Но по пункту 1 я выразился, наверное, не совсем точно. Мне надо получить доступ (чтобы программно изменить кое-что) к определенной накладной или накладным, например везде где в контрагенте стоит значение ООО "Ромашка". В приведенном коде AlexanderVA я так понимаю ищутся все накладные, а у Vladko нужено знать номер документа, хотя это тоже мне пригодится, так что спасибо.

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

Но! Для того, чтобы это работало, необходимо, чтобы в конфигурации был либо общий реквизит документов "Контрагент", либо графа отбора журналов "Контрагент". Если этого нет, то:
Контрагенты=СоздатьОбъект("Справочник.Контрагенты");
Если Контрагенты.НайтиПоНаименованию("ООО """"Ромашка""""",0,1)=1 Тогда
НужныйКонтрагент=Контрагенты.ТекущийЭлемент();
Доки=СоздатьОбъект("Документ.Реализация");
Доки.ВыбратьДокументы();
Пока Доки.ПолучитьДокумент()=1 Цикл
Если Доки.Контрагент=НужныйКонтрагент Тогда
...
КонецЕсли;
КонецЦикла;
КонецЕсли;"
Да, спасибо Thorvardr.
Спасибо всем за то, что быстро откликнулись и помогли решить проблему. На других форумах иногда ждешь ответа по несколько дней.
"Проще через через запрос, примерно так.
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|ТекущийЭлемент = Документ.Реализация.текущийдокумент;
|Контрагент = Документ.Реализация.Контрагент;
|Группировка ТекущийЭлемент;
|Условие(Контрагент в ВыбКонтрагент);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

док=создатьОбъект("Документ.Реализация");
Пока Запрос.Группировка() = 1 Цикл
если док.найтидокумент(запрос.текущийэлемент)=1 тогда;
....
               конецесли;
КонецЦикла;

где ВыбКонтрагент может быть как конкретным контрагентом ООО "Ромашка" так и списком из контрагентов.
Удачи."
Таня любит запросы :) Второй раз уже меня поправляет. Да, согласен, можно выборку через запрос формировать, на SQL платформе будет быстрее работать...
Да нет , не поправляю, просто запросы легко создавать с помощью конструктора, т е то что я сделала, практичсеки не потребовало моего вмешательства.
А если кто-то учится, то конструктор самое то.
да, с запросом обычно более проще и быстрее получается программа работает
Читают тему
(гостей: 1)

Быстрый переход