Легкая доработка документа "Требование-накладная"
Здравствуйте!
Мы пользуемся программой 1С Бухгалтерия Предприятия 2.0 и Альфа-авто: автосалон+автосервис+автозапчасти проф, ред 2.0
Между этими конфигурациями осуществлен обмен, но есть одна проблемка, которая усложняет жизнь, а именно, давальческое сырье. Для этого собственно и переделал "Требование-накладная". В документе создал две кнопки "В материалы заказчика" и "Перенести в материалы" на закладках "Материалы" и "Материалы заказчика" соответственно по аналогии с услугами и агентскими услугами в документе "Реализация товаров и услуг", но давальческого сырья много и перемещать по одной позиции неудобно. Подскажите, как можно переместить группу материалов, если они все на одном счете?
Спасибо.
Мы пользуемся программой 1С Бухгалтерия Предприятия 2.0 и Альфа-авто: автосалон+автосервис+автозапчасти проф, ред 2.0
Между этими конфигурациями осуществлен обмен, но есть одна проблемка, которая усложняет жизнь, а именно, давальческое сырье. Для этого собственно и переделал "Требование-накладная". В документе создал две кнопки "В материалы заказчика" и "Перенести в материалы" на закладках "Материалы" и "Материалы заказчика" соответственно по аналогии с услугами и агентскими услугами в документе "Реализация товаров и услуг", но давальческого сырья много и перемещать по одной позиции неудобно. Подскажите, как можно переместить группу материалов, если они все на одном счете?
Спасибо.
По теме из базы знаний
Найденные решения
(21) AndrewUs,
Давальческий = ПланыСчетов.Хозрасчетный.НайтиПоКоду("003.01");
Для каждого СтрокаТабличнойЧасти из Материалы Цикл
Если ЗначениеЗаполнено(СтрокаТабличнойЧасти)
И СтрокаТабличнойЧасти.Счет = Давальческий Тогда
НоваяСтрока = МатериалыЗаказчика.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаТабличнойЧасти);
Материалы.Удалить(СтрокаТабличнойЧасти);
КонецЕсли;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) AndrewUs, можно циклом:
Вроде так должно работать, для колонок, с одинаковым названием.
Для каждого СтрокаМатериалаЗаказчика Из Объект.МатериалыЗаказчика Цикл
СтрокаМатериала = Объект.Материалы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаМатериала, СтрокаМатериалаЗаказчика); //вот здесь, по-ходу надо источник и приемник местами поменять.
КонецЦикла
Вроде так должно работать, для колонок, с одинаковым названием.
вы используете текущие данные ЭлементыФормы.Материалы.ТекущиеДанные
попробуйте в цикле пройтись по всем материалам
типа (2)
попробуйте в цикле пройтись по всем материалам
типа (2)
кУдалению = Новый Массив;
Для каждого СтрокаТабличнойЧасти Из Материалы Цикл
Если ЗначениеЗаполнено(СтрокаТабличнойЧасти) Тогда
НоваяСтрока = МатериалыЗаказчика.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТабличнойЧасти);
кУдалению.Добавить( СтрокаТабличнойЧасти);
КонецЕсли;
КонецЦикла
//Удаляем перенесенные
Для каждого мСтрока Из кУдалению Цикл
Материалы.Удалить(СтрокаТабличнойЧасти);
КонецЦикла;
Показать
(10) minimajack,
{Документ.ТребованиеНакладная.Форма.ФормаДокумента.Форма(1182)}: Ошибка при вызове метода контекста (Удалить)
Материалы.Удалить(СтрокаТабличнойЧасти);
по причине:
Значение индекса выходит за границы диапазона
выдает ошибку, попутно увеличивая количество номенклатуры в документе.
Материалы.Удалить(СтрокаТабличнойЧасти);
по причине:
Значение индекса выходит за границы диапазона
(14) AndrewUs, ну во первых на Легкая доработка документа "Требование-накладная" - это не катит. Так как в данном случае необходимо производить запрос и проверять позиции номенклатуры на остатках по счетам и в зависимости от этого перемещать - либо нет. Значит вам необходимо изучить что такое запрос, как получать остатки.
Решить что делать с материалом который в наличии и там и там...в каком порядке списывать.
В общем ищите готовое решение, альтруиста - либо нанимайте программиста.
Решить что делать с материалом который в наличии и там и там...в каком порядке списывать.
В общем ищите готовое решение, альтруиста - либо нанимайте программиста.
(10) minimajack, плюс этот цикл переносит все материалы, как я понял, а необходимо определенную группу. Сейчас объясню. В документ требование накладная попадают все материалы, которые списываются, как находящиеся в собственности организации так и давальческие. Собственные - учет на 41.01 (не обращайте внимания на то, что 41 счет), а давальческие - 003.01. Было бы все хорошо, если бы документ проводился. Но для корректного проведения необходимо, чтобы материалы на счете 003.01 переместились из вкладки "Материалы" на вкладку "Материалы заказчика" и только эти материалы, а не все.
Сейчас у меня такая процедура:
СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
Если ЗначениеЗаполнено(СтрокаТабличнойЧасти) Тогда
НоваяСтрока = МатериалыЗаказчика.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТабличнойЧасти);
Материалы.Удалить(СтрокаТабличнойЧасти);
КонецЕсли;
(7) AndrewUs, такими многие врятли были...прежде чем работать с механизмами - необходимо знать как устроены базовые конструкции языка - иначе много дров можно наломать. 1С - это прежде всего бизнес(деньги) - где любая ошибка может вылезти боком.
зы мне не смешно - мне грустно от того что вы не знаете
зы мне не смешно - мне грустно от того что вы не знаете
В процедуре прописано:
Уверен, что ошибся, но где? Подскажите, пожалуйста.
СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
Давальческий = ПланыСчетов.Хозрасчетный.НайтиПоКоду("003.01");
Если СтрокаТабличнойЧасти.Счет = Давальческий Тогда
Для каждого СтрокаТабличнойЧасти из Материалы Цикл
Если ЗначениеЗаполнено(СтрокаТабличнойЧасти) Тогда
НоваяСтрока = МатериалыЗаказчика.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаТабличнойЧасти);
Материалы.Удалить(СтрокаТабличнойЧасти);
КонецЕсли;
КонецЦикла;
КонецЕсли;
ПоказатьУверен, что ошибся, но где? Подскажите, пожалуйста.
(21) AndrewUs,
Давальческий = ПланыСчетов.Хозрасчетный.НайтиПоКоду("003.01");
Для каждого СтрокаТабличнойЧасти из Материалы Цикл
Если ЗначениеЗаполнено(СтрокаТабличнойЧасти)
И СтрокаТабличнойЧасти.Счет = Давальческий Тогда
НоваяСтрока = МатериалыЗаказчика.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,СтрокаТабличнойЧасти);
Материалы.Удалить(СтрокаТабличнойЧасти);
КонецЕсли;
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот