• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Записать те товары в документ

  • Автор темы cacti
  • Дата начала
C

cacti

для каждого контрагента забивается все товары, т.е. не учитывается какой контрагент указан, как сделать так чтобы он учитывал контрагента и выгружал те товары которые он заказал?

Для Каждого СтрокаДанных Из СоответствияТоваров Цикл
НоваяСтрока = ДокументОбъект.Товары.Добавить();

Имя = СтрокаДанных.Наименование;
СправочникНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(Имя);
НоваяСтрока.Номенклатура = СправочникНоменклатура.Ссылка;
НоваяСтрока.Количество = СтрокаДанных.Количество;
НоваяСтрока.Цена = СтрокаДанных.Цена;


КонецЦикла;
 
U

unknown181538

для каждого контрагента забивается все товары, т.е. не учитывается какой контрагент указан, как сделать так чтобы он учитывал контрагента и выгружал те товары которые он заказал?
:*цензура*you:
Слова не согласованы, кто "он" должен учитывать не понятно...
Косяк забить - это хорошо, но причем тут 1С?

PS Кто придумал такое обозначение смайлику "Да ну вас!", вдруг кто-то в текстовом режиме смотрит??
 
C

cacti

так..создается документ ЗаказПокупателя, заполняются поля номенклатура, контрагент, организация, количество, цена. в поле Номенклатура добавляются все товары, которые в ТЗ. Как сделать чтобы создавался документ для каждого контрагента и заполнялись только те товары, которые относятся к этому контрагенту.
 
U

unknown181538

Угумс... ЗагрузитьВнешнююКомпоненту(telepat.dll)
Значит, у вас есть обработка, которая программно создает документ. И вероятно в ней есть код. Следует его проанализировать.
А :( , для начала? Есть умение пользоваться операторами "Если ... иначе..."
Код можете выложить даже)
 
C

cacti

можно сказать что я профан)) новичок.просто сижу разбираюсь и пытаюсь что то сделать. я так понимаю мне надо использовать оператор Пока..т.е. т.е. цикл нужен проходит по всех таблице смотрит какие контрагенты одинаковы по ним записывает данные. но как сделать Цикл?
 
C

cacti

Функция СоздатьЗаказТоваров(СтрокаДанных)
ДокументОбъект = Документы.ЗаказПокупателя.СоздатьДокумент();


сИмя = СтрокаДанных.Склад;
оИмя = СтрокаДанных.Контрагент;
кИмя = СтрокаДанных.ФИО;

СправочникКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(кИмя);
СправочникСклад = Справочники.Склады.НайтиПоНаименованию(сИмя);
СправочникОрганизация = Справочники.Организации.НайтиПоНаименованию(оИмя);

Для Каждого СтрокаДанных Из СоответствияТоваров Цикл

ДокументОбъект.Контрагент = СправочникКонтрагент.Ссылка;
НоваяСтрока = ДокументОбъект.Товары.Добавить();
Имя = СтрокаДанных.Наименование;
СправочникНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(Имя);
НоваяСтрока.Номенклатура = СправочникНоменклатура.Ссылка;
НоваяСтрока.Количество = СтрокаДанных.Количество;
НоваяСтрока.Цена = СтрокаДанных.Цена;
ДокументОбъект.Дата=ТекущаяДата();

КонецЦикла;
Возврат ДокументОбъект;

КонецФункции


и при нажатии кнопки вызывается функция


Процедура Создать(Кнопка)

Для Каждого СтрокаТаблицы Из СоответствияТоваров Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда
Продолжить;
Иначе

ДокументОбъект = СоздатьЗаказТоваров(СтрокаТаблицы);

КонецЕсли;


Попытка

ДокументОбъект.Записать();

Исключение
Сообщить("Ошибка");


Продолжить;
КонецПопытки;

КонецЦикла;

КонецПроцедуры
 
D

Darlock

1) Это что такое?
СправочникКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(кИмя);
СправочникСклад = Справочники.Склады.НайтиПоНаименованию(сИмя);
СправочникОрганизация = Справочники.Организации.НайтиПоНаименованию(оИмя);

У вас документе эти 3 реквизита строки? или все таки ссылки?

2) вместо перебора циклом (строк может быть от 1 до хз сколько) используйте запрос.

В идеале в запросе сделать итоги по контрагенту. А потом уже полученную выборку перебирать циклом.


Добавлено: А еще лучше, выложить здесь обработку свою и конкретнее сформулировать вопрос. Что-то типа:
"на форме у меня 3 реквизита "Склад", "Контрагент", "Организация".
"Так же есть таблица с номенклатурой, ценой, ...".

"Нужно чтоб формировались документы для каждого контрагента со своим товаров". (предполагаю, что контрагент в таблице присутствует)

Угумс... ЗагрузитьВнешнююКомпоненту(telepat.dll)

:)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!