|
v7: Печать ценников и этикеток(сортировка по коду и наименованию товара) | ☑ | ||
---|---|---|---|---|
0
SeeWorld
20.07.12
✎
10:55
|
Всем привет! Задание наверно банальное,но все же. Нужна сортировка по коду и наименованию продукции, то есть на выходе этикетки и ценники в экселе должны быть отсортированы. Сортировка по наименованию должна иметь два варианта(А-Я,Я-А). Сортировка по коду аналогична(по возраст и убыванию). В 1с только начинаю программировать, много чего не понятно. Помогите плиз!(
|
|||
1
SeeWorld
20.07.12
✎
10:57
|
Перем МаксРяд, МаксСтолбик, Регистрация, Магазин;
Перем Остатки; Функция ЗаполнитьИзТерминала() Перем ТермДанные; Перем УдаляемыеСтроки; Перем ВремНоменклатура, ВремЕдиница; Перем ЦенаТов, ЕдиницаЦены; // 1. загружаем данные из терминала Если глТерминалЗагрузитьДанные(ТермДанные) = 0 Тогда Возврат ""; КонецЕсли; // 2. преобразуем таблицу, полученную из обработки терминала в формат для // передачи в процедуру обработки подбора ТермДанные.НоваяКолонка("Номенклатура"); ТермДанные.НоваяКолонка("Единица"); УдаляемыеСтроки = СоздатьОбъект("СписокЗначений"); ТермДанные.ВыбратьСтроки(); Пока ТермДанные.ПолучитьСтроку() = 1 Цикл Если глПолучитьТоварПоШтрихкоду(ТермДанные.Штрихкод, ВремНоменклатура, ВремЕдиница, ) = 0 Тогда // штрихкод не найден. сохраним номер строки для дальнейшего ее удаления УдаляемыеСтроки.ДобавитьЗначение(ТермДанные.НомерСтроки); Иначе ТермДанные.Номенклатура = ВремНоменклатура; ТермДанные.Единица = ВремЕдиница; КонецЕсли; КонецЦикла; // 3. удалим строки, по которым не удалось идентифицировать товар СчетчикЦикла = 0; Для СчетчикЦикла = 1 По УдаляемыеСтроки.РазмерСписка() Цикл УдСтр = УдаляемыеСтроки.ПолучитьЗначение(СчетчикЦикла); ТермДанные.УдалитьСтроку(УдСтр - СчетчикЦикла + 1); КонецЦикла; ТермДанные.ВыбратьСтроки(); Пока ТермДанные.ПолучитьСтроку() = 1 Цикл ВремНоменклатура = ТермДанные.Номенклатура; Если ВремНоменклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга Тогда Продолжить; КонецЕсли; Если флКоличество = 1 Тогда КолНом = ТермДанные.Количество; Если ТермДанные.Единица.Наименование <> "ШТ." Тогда КолНом = 1; КонецЕсли; Для Сч = 1 По КолНом Цикл Таб.НоваяСтрока(); Таб.Номенклатура= ВремНоменклатура; Таб.ЕдИзм = ТермДанные.Единица; КонецЦикла; Иначе Таб.НоваяСтрока(); Таб.Номенклатура= ВремНоменклатура; Таб.ЕдИзм = ТермДанные.Единица; КонецЕсли; КонецЦикла; // 4. Спросим про очистку памяти терминала Если Вопрос("Очистить память терминала сбора данных?", "Да+Нет", 60) = "Да" Тогда глТерминалОчиститьПамять(); КонецЕсли; Возврат ""; КонецФункции // ЗаполнитьИзТерминала() Функция ЗагрузитьИзДокумента() Перем ТаблицаДокумента; Перем ДокОснование; Перем ВариантЗап; Если глТерминалВключен() = 1 Тогда СписВариантов = СоздатьОбъект("СписокЗначений"); СписВариантов.ДобавитьЗначение(1, "Заполнить по документу"); СписВариантов.ДобавитьЗначение(2, "Заполнить из терминала"); Если СписВариантов.ВыбратьЗначение(ВариантЗап, , , 60, 1) <> 1 Тогда Возврат ""; КонецЕсли; Иначе // терминал не включен. Заполняем всегда по остаткам ВариантЗап = 1; КонецЕсли; Если Таб.КоличествоСтрок() <> 0 Тогда ТекстВопроса = "Перед заполнением табличная часть будет очищена. Заполнить?"; Если Вопрос(ТекстВопроса, "Да+Нет", 60) <> "Да" Тогда Возврат ""; КонецЕсли; КонецЕсли; Если ВариантЗап = 2 Тогда Результат = ЗаполнитьИзТерминала(); Возврат Результат; КонецЕсли; // Загрузка из документа ДокОснование = СоздатьОбъект("Документ"); ДокОснование.ВидыДляВыбора("ПеремещениеТМЦ,ПереоценкаРозница,ПоступлениеТМЦ"); Если ДокОснование.Выбрать("Выберите документ для печати ценников") = 0 Тогда Возврат "Документ не выбран"; КонецЕсли; Если Таб.КоличествоСтрок() <> 0 Тогда ТекстВопроса = "Очистить табличную часть?"; Если Вопрос(ТекстВопроса, "Да+Нет", 30) = "Да" Тогда Таб.УдалитьСтроки(); КонецЕсли; КонецЕсли; ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений"); ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента,"Номенклатура,Количество,Единица"); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл ВремНоменклатура = ТаблицаДокумента.Номенклатура; Если ВремНоменклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга Тогда Продолжить; КонецЕсли; Если флКоличество = 1 Тогда КолНом = ТаблицаДокумента.Количество; Если ТаблицаДокумента.Единица.Наименование <> "ШТ." Тогда КолНом = 1; КонецЕсли; Для Сч = 1 По КолНом Цикл Таб.НоваяСтрока(); Таб.Номенклатура= ТаблицаДокумента.Номенклатура; Таб.ЕдИзм = ТаблицаДокумента.Единица; КонецЦикла; Иначе Таб.НоваяСтрока(); Таб.Номенклатура= ТаблицаДокумента.Номенклатура; Таб.ЕдИзм = ТаблицаДокумента.Единица; КонецЕсли; КонецЦикла; // по строкам основания Если Таб.КоличествоСтрок() = 0 Тогда Возврат "В документе не заполнена табличная часть"; КонецЕсли; Возврат ""; КонецФункции // ЗагрузитьИзДокумента Процедура ПриИзмененииИсторииЦены() Если флИсторияЦены = 1 Тогда Цена2 = ""; Форма.Цена2.Доступность(0); Иначе Форма.Цена2.Доступность(1); КонецЕсли; КонецПроцедуры // Обрабатывает цену, округляет до "круглого" значения если выбран соответствующий режим и отличие не превышает 5 копеек Функция ОбработатьЦену(Цена) Перем Результат; Результат = Цена; Если флВыравниватьЦену = 1 Тогда Результат = Окр(Цена,0); Если (ABS(Результат-Цена) > 0.05) Тогда Результат = Цена; КонецЕсли; КонецЕсли; Возврат глФРМ(Результат,,""); КонецФункции // ОбработатьЦену //****************************************************************************** // ДобавитьЦенник(Таб, Фирма, Номенклатура, Столбик, Ряд) // // Параметры: // Таб - таблица, в которую выполняется вывод ценника // Номенклатура - наименование товара // Столбик - номер столбика. // Ряд - номер ряда // // Возвращаемое значение: // Нет. // // Описание: // Добавляет ценник в таблицу // Процедура ДобавитьЦенник(Таб, Фирма, Номенклатура, ЕдИзм, Столбик, Ряд) Экспорт Если Столбик > МаксСтолбик тогда Столбик = 2; Ряд = Ряд + 1; иначе Столбик = Столбик + 1; КонецЕсли; Если Ряд > МаксРяд Тогда Таб.НоваяСтраница(); Столбик = 2; // Столбик следующий за текущим Ряд = 1; КонецЕсли; ЦенаОптовая = ""; ЦенаОптоваяНаим = ""; ЦенаВторая = ""; ЦенаВтораяНаим = ""; ЦенаШт = ""; ЦенаШтНаим = ""; Код = Номенклатура.код; Наименование = СокрЛП(Шаблон("[Номенклатура.Наименование]")); Если флЗаглавными = 1 Тогда Наименование = Врег(Наименование); КонецЕсли; КаталожныйНомер = Номенклатура.КаталожныйНомер; ТестСтр = Врег(КаталожныйНомер); Если Найти(ТестСтр, "КИТАЙ") <> 0 Тогда КаталожныйНомер = ""; КонецЕсли; Применяемость = Номенклатура.Применяемость; ТестСтр = Врег(Применяемость); Если Найти(ТестСтр, "КИТАЙ") <> 0 Тогда Применяемость = ""; КонецЕсли; ШК = ЕдИзм.Штрихкод; НДС = глНачисляемыйНДС(Номенклатура.СтавкаНДС); Если ПустоеЗначение(Цена1) = 0 тогда Цена = 0; ЦенаОптовая = 0; ЕдИзмОпт = ""; ЦенаОптоваяНаим = Лев(Цена1.Наименование,6)+". цена"; Если (флБазоваяЦена = 1) и (Цена1.Рассчитывается = 1) Тогда ЦенаОптоваяНаим = Цена1.БазовыйТипЦен.Наименование; КонецЕсли; Если глВернутьЦену(Номенклатура, Цена1, ДатаПечати, Цена, ЕдИзмОпт) = 1 тогда Если ЕдИзмОпт <> ЕдИзм Тогда Цена = Цена * ЕдИзм.Коэффициент; ЕдИзмОпт = ЕдИзм; КонецЕсли; Если добНДС = 1 тогда Цена = Цена * (1+НДС); КонецЕсли; ЦенаОптовая = ОбработатьЦену(Цена); иначе ЦенаОптоваяНаим = ""; КонецЕсли; КонецЕсли; Если флИсторияЦены = 1 Тогда Цена2 = Цена1; // Загоним сюда предыдущее значение цены1 Цена = 0; ЦенаВторая = ""; ЕдИзм2 = ""; ЦенаВтораяНаим = "Цена"; ДатаПредЦены = ""; ЦеныНоменклатуры= СоздатьОбъект("Справочник.Цены"); ЦеныНоменклатуры.ИспользоватьВладельца(Номенклатура); ЦеныНоменклатуры.ВыбратьЭлементы(); Пока ЦеныНоменклатуры.ПолучитьЭлемент() = 1 Цикл Если ЦеныНоменклатуры.ТипЦен.Код <> Цена2.Код Тогда Продолжить; КонецЕсли; НайденнаяЦена = ЦеныНоменклатуры.ТекущийЭлемент(); Если ЦеныНоменклатуры.ПометкаУдаления() = 1 Тогда Рез = - 1; // Цена есть, но помечена на удаление Продолжить Иначе Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект("Цена", ЦеныНоменклатуры.ТекущийЭлемент()); Периодический.ВыбратьЗначения("", ДатаПечати); // Строки, в которых выводятся значения в периоде просмотра. Дата1 = ""; Пока Периодический.ПолучитьЗначение() = 1 Цикл Если Дата1 <> Периодический.ДатаЗнач Тогда ДатаПредЦены = Дата1; Дата1 = Периодический.ДатаЗнач; КонецЕсли; КонецЦикла; КонецЕсли; Прервать; КонецЦикла; Если (ДатаПредЦены <> "") и (глВернутьЦену(Номенклатура, Цена2, ДатаПредЦены, Цена, ЕдИзм2) = 1) тогда Если ЕдИзм2 <> ЕдИзм Тогда Цена = Цена * ЕдИзм.Коэффициент; ЕдИзм2 = ЕдИзм; КонецЕсли; Если добНДС = 1 тогда Цена = Цена * (1+НДС); КонецЕсли; ЦенаВторая = ОбработатьЦену(Цена); иначе ЦенаВтораяНаим = ""; КонецЕсли; Иначе Если ПустоеЗначение(Цена2) = 0 тогда Цена = 0; ЦенаВторая = 0; ЕдИзм2 = ""; ЦенаВтораяНаим = Цена2.Наименование; Если (флБазоваяЦена = 1) и (Цена2.Рассчитывается = 1) Тогда ЦенаВтораяНаим = Цена2.БазовыйТипЦен.Наименование; КонецЕсли; Если глВернутьЦену(Номенклатура, Цена2, ДатаПечати, Цена, ЕдИзм2) = 1 тогда Если ЕдИзм2 <> ЕдИзм Тогда Цена = Цена * ЕдИзм.Коэффициент; ЕдИзм2 = ЕдИзм; КонецЕсли; Если добНДС = 1 тогда Цена = Цена * (1+НДС); КонецЕсли; ЦенаВторая = ОбработатьЦену(Цена); иначе ЦенаВтораяНаим = ""; КонецЕсли; КонецЕсли; КонецЕсли; Товар3Цены = 0; Если ПустоеЗначение(Цена3) = 0 тогда Цена = 0; ЦенаШт = 0; ЕдИзмШт = ""; ЦенаШтНаим = Цена3.Наименование; Если (флБазоваяЦена = 1) и (Цена3.Рассчитывается = 1) Тогда ЦенаШтНаим = Цена3.БазовыйТипЦен.Наименование; КонецЕсли; Товар3Цены = 1; Если глВернутьЦену(Номенклатура, Цена3, ДатаПечати, Цена, ЕдИзмШт) = 1 тогда Если ЕдИзмШт <> ЕдИзм Тогда Цена = Цена * ЕдИзм.Коэффициент; ЕдИзмШт = ЕдИзм; КонецЕсли; Если добНДС = 1 тогда Цена = Цена * (1+НДС); КонецЕсли; ЦенаШт = ОбработатьЦену(Цена); иначе ЦенаШтНаим = ""; КонецЕсли; КонецЕсли; Если Размер = 8 Тогда // Товар продается в кредит ЕдИзмШт = ""; ЦенаШтНаим = ""; ЦенаШт = ""; Информация = ""; Если Цена > 3500 Тогда Информация = "Продажа в кредит"; ЦенаШтНаим = "Сумма первоначального взноса"; ЦенаШт = ОбработатьЦену(Окр(Цена*0.1,-1)); КонецЕсли; КонецЕсли; Если Столбик = 2 Тогда Если флОтступ = 1 тогда // Выводим с отступами Таб.ВывестиСекцию("Отступы|Ценник"); ИначеЕсли (Товар3Цены = 0) и (Размер <> 8) тогда Таб.ВывестиСекцию("Товар|Ценник"); иначе Таб.ВывестиСекцию("Товар3Цены|Ценник"); КонецЕсли; Иначе Если флОтступ = 1 тогда // Выводим с отступами Таб.ПрисоединитьСекцию("Отступы|Ценник"); ИначеЕсли (Товар3Цены = 0) и (Размер <> 8) тогда Таб.ПрисоединитьСекцию("Товар|Ценник"); иначе Таб.ПрисоединитьСекцию("Товар3Цены|Ценник"); КонецЕсли; КонецЕсли; КонецПроцедуры // ДобавитьЦенник() Процедура ПриВыбореОстатка() Если пкОстатки = 1 тогда Форма.кнУдСклад.Доступность(1); Форма.Склад.Доступность(1); иначе Форма.кнУдСклад.Доступность(0); Форма.Склад.Доступность(0); КонецЕсли; КонецПроцедуры //****************************************************************************** Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные) // Процедура разбирает штрих-код, считанный сканером // и заполняет строки накладной Перем Упаковка,ТекКоличество, Спецификация; Перем ВремТовар, ВремЕдиница, ВремКоличество; Перем ВремЦена, ЕдЦены; Если Событие = "BarCodeValue" Тогда Если Форма.ТолькоПросмотр() = 0 Тогда Если глПолучитьТоварПоШтрихкоду(Данные, ВремТовар, ВремЕдиница, ВремКоличество) <> 0 Тогда Таб.НоваяСтрока(); Таб.Номенклатура = ВремТовар; Таб.ЕдИзм = ВремЕдиница; //Таб.Количество = ВремКоличество; КонецЕсли; КонецЕсли; // Обработка закончена. Готовы к получению нового штрихкода. глСканерПосылкаДанных(1); КонецЕсли; КонецПроцедуры // Возвращает фирму, на которой есть остаток Функция ВернутьФирму(ТМЦ) Перем Результат, ТЗ, ОстФирма; ТЗ = СоздатьОбъект("ТаблицаЗначений"); Остатки.УстановитьЗначениеФильтра("Номенклатура",ТМЦ,1); Остатки.ВыгрузитьИтоги(ТЗ,1,1); ТЗ.Свернуть("Фирма","Количество"); ТЗ.Сортировать("-Количество"); Если ТЗ.КоличествоСтрок() > 0 Тогда ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл ОстФирма = ТЗ.Фирма; Прервать; КонецЦикла; Иначе ОстФирма = ТекФирма.ПолучитьЗначение(ТекФирма.ТекущаяСтрока()); КонецЕсли; Результат = ОстФирма.ЮрЛицо.Наименование; Остатки.УстановитьЗначениеФильтра("Номенклатура",""); Возврат Результат; КонецФункции // ВернутьФирму //******************************************* Процедура Сформировать() //Если ТекФирма.ТекущаяСтрока() = 1 тогда // Фирма = "Открытое Акционерное Общество"; // Магазин = "РБС ""Прохладненская"""; //иначеЕсли ТекФирма.ТекущаяСтрока() = 2 тогда // Фирма = "ООО РБС"; // Магазин = "Магазин ""Продукты"""; //иначеЕсли ТекФирма.ТекущаяСтрока() = 3 тогда // Фирма = "ИП Омельченко И.Я."; // Магазин = "< Продукты >"; //иначеЕсли ТекФирма.ТекущаяСтрока() = 4 тогда // Фирма = "ООО Мир продуктов"; // Магазин = "< Продукты >"; //КонецЕсли; Отчет = СоздатьОбъект("Таблица"); Отчет.ИсходнаяТаблица("Таблица"+Размер); Если Размер = 1 Тогда МаксРяд = 3; МаксСтолбик = 2; ИначеЕсли Размер = 2 тогда МаксРяд = 5; МаксСтолбик = 3; иначеЕсли Размер = 3 тогда МаксРяд = 5; МаксСтолбик = 4; иначеЕсли Размер = 4 тогда МаксРяд = 3; МаксСтолбик = 1; иначеЕсли Размер = 5 тогда МаксРяд = 6; МаксСтолбик = 2; иначеЕсли Размер = 6 тогда МаксРяд = 3; МаксСтолбик = 2; ИначеЕсли Размер = 7 Тогда МаксРяд = 2; МаксСтолбик = 2; ИначеЕсли Размер = 8 Тогда МаксРяд = 2; МаксСтолбик = 2; ИначеЕсли Размер = 9 Тогда МаксРяд = 8; МаксСтолбик = 1; ИначеЕсли Размер = 10 Тогда МаксРяд = 10; МаксСтолбик = 2; ИначеЕсли Размер = 11 Тогда МаксРяд = 1; МаксСтолбик = 1; ИначеЕсли Размер = 12 Тогда МаксРяд = 9; МаксСтолбик = 2; ИначеЕсли Размер = 13 Тогда МаксРяд = 8; МаксСтолбик = 2; ИначеЕсли Размер = 14 Тогда МаксРяд = 10; МаксСтолбик = 3; ИначеЕсли Размер = 15 Тогда МаксРяд = 14; МаксСтолбик = 5; ИначеЕсли Размер = 16 Тогда МаксРяд = 7; МаксСтолбик = 3; Иначе Предупреждение("Нет шаблона ценника", 3); Возврат; КонецЕсли; Если флОтступ = 1 тогда МаксРяд = Макс(1, Цел(МаксРяд / 3)); КонецЕсли; Столбик = 1; Ряд = 1; Ном = СоздатьОбъект("Справочник.Номенклатура"); Таб.ВыбратьСтроки(); Пока Таб.ПолучитьСтроку() = 1 Цикл Если Таб.Номенклатура.ЭтоГруппа() = 1 тогда Ном.ИспользоватьРодителя(Таб.Номенклатура); Ном.ВыбратьЭлементы(); Пока Ном.ПолучитьЭлемент() = 1 цикл Если (Ном.ЭтоГруппа() = 0) и (Ном.ПометкаУдаления() = 0) тогда Если пкОстатки = 1 тогда Если (ПустоеЗначение(Склад) = 1) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), , ,"Количество") <= 0) тогда Продолжить; КонецЕсли; ИначеЕсли (ПустоеЗначение(Склад) = 0) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), Склад, ,"Количество") <= 0) тогда Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; Фирма = ВернутьФирму(Ном); Если (пкОстатки = 1) и (ПустоеЗначение(Фирма) = 1) Тогда Фирма = ТекФирма.ТекущаяСтрока(); КонецЕсли; ДобавитьЦенник(Отчет, Фирма, Ном, Ном.БазоваяЕдиница, Столбик, Ряд); КонецЕсли; КонецЦикла; Ном.ИспользоватьРодителя(); иначе Фирма = ВернутьФирму(Таб.Номенклатура); ДобавитьЦенник(Отчет, Фирма, Таб.Номенклатура, Таб.ЕдИзм, Столбик, Ряд); КонецЕсли; КонецЦикла; Отчет.Показать("Ценники "+?(пкОстатки = 0,"",?(ПустоеЗначение(Склад)=1," по всем складам "," по складу: "+Склад))); КонецПроцедуры Процедура ПоКнПодбор() ОткрытьПодбор("Справочник.Номенклатура","ДляВыбора",1,); КонецПроцедуры Процедура ОбработкаПодбора(Ном,Конт) //Если Ном.ТекущийЭлемент().ЭтоГруппа() = 1 тогда // Предупреждение("Нельзя выбирать группы"); // Возврат; //КонецЕсли; Если (Таб.НайтиЗначение(Ном.ТекущийЭлемент(),,"Номенклатура") = 0) или (Ном.ТекущийЭлемент().ЭтоГруппа() = 0) тогда Таб.НоваяСтрока(); Таб.Номенклатура = Ном.ТекущийЭлемент(); Если флБазЕдИзм = 1 Тогда Таб.ЕдИзм = Таб.Номенклатура.БазоваяЕдиница; Иначе СпрЕдИзм = СоздатьОбъект("Справочник.Единицы"); СпрЕдИзм.ИспользоватьВладельца(Таб.Номенклатура); СпрЕдИзм.ВыбратьЭлементы(); Пока СпрЕдИзм.ПолучитьЭлемент() = 1 Цикл Если СпрЕдИзм.ТекущийЭлемент() <> Таб.Номенклатура.БазоваяЕдиница Тогда Таб.ЕдИзм = СпрЕдИзм.ТекущийЭлемент(); Прервать; КонецЕсли; Если ПустоеЗначение(Таб.ЕдИзм) = 1 Тогда Таб.ЕдИзм = Таб.Номенклатура.БазоваяЕдиница; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ПриОткрытии() Перем СпрФирм; Размер = 1; ДатаПечати = РабочаяДата(); добНДС = 1; флБазЕдИзм = 1; пкОстатки = 1; флЗаглавными = 0; Таб.НоваяКолонка("Номенклатура","Справочник.Номенклатура"); Таб.НоваяКолонка("ЕдИзм","Справочник.Единицы",,,"Ед.изм",7); Цена1 = Константа.РозничныйТипЦен; СпрФирм = СоздатьОбъект("Справочник.Фирмы"); СпрФирм.ВыбратьЭлементы(); Пока СпрФирм.ПолучитьЭлемент() = 1 Цикл ТекФирма.ДобавитьЗначение(СпрФирм.ТекущийЭлемент(), СпрФирм.ТекущийЭлемент().Наименование); КонецЦикла; Остатки = СоздатьОбъект("Регистр.ОстаткиТМЦ"); ПриВыбореОстатка(); КонецПроцедуры |
|||
2
Mikeware
20.07.12
✎
10:58
|
Ичо?
|
|||
3
SeeWorld
20.07.12
✎
11:00
|
Отсортировать по наим. получилось(Таб.Сортировать("+Номенклатура"); ), а по коду нет(
|
|||
4
Zmich
20.07.12
✎
11:02
|
(3). Добавь колонку Код в таблицу, заполни, отсортируй. Можно сделать Видимость(0), чтоб визуально она не отображалась.
|
|||
5
SeeWorld
20.07.12
✎
11:08
|
Где и как это сделать?(
|
|||
6
SeeWorld
20.07.12
✎
11:08
|
Код не нумерация строк, а код из справочника.номенклатура конкретного элемента.
|
|||
7
SeeWorld
20.07.12
✎
11:13
|
Форма выглядит так http://upwap.ru/2624673
|
|||
8
Zmich
20.07.12
✎
11:14
|
(5). В ПриОткрытии() рядом с
Таб.НоваяКолонка("Номенклатура","Справочник.Номенклатура"); Таб.НоваяКолонка("ЕдИзм","Справочник.Единицы",,,"Ед.изм",7); добавь Таб.НоваяКолонка("Код","Строка", 12); // 12 - Длина кода номенклатуры везде в коде, где есть Таб.НоваяСтрока(), например, Таб.НоваяСтрока(); Таб.Номенклатура= ТаблицаДокумента.Номенклатура; Таб.ЕдИзм = ТаблицаДокумента.Единица; добавляй строчку Таб.Код = ТаблицаДокумента.Номенклатура.Код; После этого можешь сортировать по колонке Код. |
|||
9
SeeWorld
20.07.12
✎
11:17
|
Ценник http://upwap.ru/2624699
|
|||
10
Zmich
20.07.12
✎
11:23
|
(7), (9) - для сортировки не важно, как они выглядят
|
|||
11
SeeWorld
20.07.12
✎
11:44
|
Таб.Код = ТаблицаДокумента<<?>>.Номенклатура.Код;
{D:\1C\EXTFORMS\AAA.ERT(57)}: Переменная не определена (ТаблицаДокумента) Таб.Код = ТаблицаДокумента<<?>>.Номенклатура.Код; {D:\1C\EXTFORMS\AAA.ERT(63)}: Переменная не определена (ТаблицаДокумента) Таб.Код = ТаблицаДокумента<<?>>.Номенклатура.Код; {D:\1C\EXTFORMS\AAA.ERT(419)}: Переменная не определена (ТаблицаДокумента) Таб.Код = ТаблицаДокумента<<?>>.Номенклатура.Код; {D:\1C\EXTFORMS\AAA.ERT(587)}: Переменная не определена (ТаблицаДокумента) |
|||
12
SeeWorld
20.07.12
✎
11:45
|
Выдает ошибки
|
|||
13
Zmich
20.07.12
✎
11:49
|
(11). Слушай, ну если ты такую простую логику не можешь понять, то тут я тебе не помощник.
|
|||
14
SeeWorld
20.07.12
✎
12:02
|
Извини! Просто, пока вообще толком не разбираюсь в 1с. Очень тяжело. Сделал все как ты описал выше.
|
|||
15
Zmich
20.07.12
✎
12:09
|
(14). Ну естественно, если строки такие:
Таб.НоваяСтрока(); Таб.Номенклатура= ВремНоменклатура; Таб.ЕдИзм = ТермДанные.Единица; то надо добавлять Таб.Код = ВремНоменклатура.Код; В остальных по аналогии. Что тут "тяжелого"? |
|||
16
SeeWorld
20.07.12
✎
12:15
|
Блин, не внимательно посмотрел)
|
|||
17
SeeWorld
20.07.12
✎
12:56
|
в Колонке "Код" таб. знач. нет кода. Попробовал распечатать там пусто.
|
|||
18
SeeWorld
20.07.12
✎
16:11
|
||||
19
SeeWorld
26.07.12
✎
14:27
|
Я все правильно сделал?
|
|||
20
SeeWorld
27.07.12
✎
18:34
|
Помогите пожалуйста!(((
|
|||
21
lals
27.07.12
✎
23:36
|
Стучи в аську аська в личке
|
|||
22
EvgeniuXP
27.07.12
✎
23:54
|
(19) нет, не правильно, от такого решения тебе руки и ноги выдернут.
|
|||
23
SeeWorld
28.07.12
✎
18:04
|
Что, где и как сделать?(
|
|||
24
VladZ
28.07.12
✎
20:43
|
(0)
Если Размер = 1 Тогда МаксРяд = 3; МаксСтолбик = 2; ИначеЕсли Размер = 2 тогда МаксРяд = 5; МаксСтолбик = 3; Ёптить... Код из разряда "вырви глаз"... |
|||
25
VladZ
28.07.12
✎
20:48
|
Отличный код! Чего здесь только нет! :)
|
|||
26
SeeWorld
29.07.12
✎
10:31
|
SOS
|
|||
27
SeeWorld
29.07.12
✎
10:39
|
Вот что я сделал, но не работает. Не пойму почему во внутреннем цикле не происходит добавление наименования в колонку "Номенклатура", а во внешнем все добавляется(
//Сортировка по коду и наименованию товара Функция Списзнач(Отчет, Фирма, Номенклатура, ЕдИзм, Код, Столбик, Ряд) Экспорт СписНаимКод.НоваяСтрока(); СписНаимКод.Отчет = Отчет; СписНаимКод.Фирма = Фирма; СписНаимКод.Номенклатура = Номенклатура; СписНаимКод.ЕдИзм = ЕдИзм; СписНаимКод.Код = Код; СписНаимКод.Столбик = Столбик; СписНаимКод.Ряд = Ряд; КонецФункции //******************************************* Процедура Сформировать() //Если ТекФирма.ТекущаяСтрока() = 1 тогда // Фирма = "Открытое Акционерное Общество"; // Магазин = "РБС ""Прохладненская"""; //иначеЕсли ТекФирма.ТекущаяСтрока() = 2 тогда // Фирма = "ООО РБС"; // Магазин = "Магазин ""Продукты"""; //иначеЕсли ТекФирма.ТекущаяСтрока() = 3 тогда // Фирма = "ИП Омельченко И.Я."; // Магазин = "< Продукты >"; //иначеЕсли ТекФирма.ТекущаяСтрока() = 4 тогда // Фирма = "ООО Мир продуктов"; // Магазин = "< Продукты >"; //КонецЕсли; Отчет = СоздатьОбъект("Таблица"); Отчет.ИсходнаяТаблица("Таблица"+Размер); Если Размер = 1 Тогда МаксРяд = 3; МаксСтолбик = 2; ИначеЕсли Размер = 2 тогда МаксРяд = 5; МаксСтолбик = 3; иначеЕсли Размер = 3 тогда МаксРяд = 5; МаксСтолбик = 4; иначеЕсли Размер = 4 тогда МаксРяд = 3; МаксСтолбик = 1; иначеЕсли Размер = 5 тогда МаксРяд = 6; МаксСтолбик = 2; иначеЕсли Размер = 6 тогда МаксРяд = 3; МаксСтолбик = 2; ИначеЕсли Размер = 7 Тогда МаксРяд = 2; МаксСтолбик = 2; ИначеЕсли Размер = 8 Тогда МаксРяд = 2; МаксСтолбик = 2; ИначеЕсли Размер = 9 Тогда МаксРяд = 8; МаксСтолбик = 1; ИначеЕсли Размер = 10 Тогда МаксРяд = 10; МаксСтолбик = 2; ИначеЕсли Размер = 11 Тогда МаксРяд = 1; МаксСтолбик = 1; ИначеЕсли Размер = 12 Тогда МаксРяд = 9; МаксСтолбик = 2; ИначеЕсли Размер = 13 Тогда МаксРяд = 8; МаксСтолбик = 2; ИначеЕсли Размер = 14 Тогда МаксРяд = 10; МаксСтолбик = 3; ИначеЕсли Размер = 15 Тогда МаксРяд = 14; МаксСтолбик = 5; ИначеЕсли Размер = 16 Тогда МаксРяд = 7; МаксСтолбик = 3; Иначе Предупреждение("Нет шаблона ценника", 3); Возврат; КонецЕсли; Если флОтступ = 1 тогда МаксРяд = Макс(1, Цел(МаксРяд / 3)); КонецЕсли; Столбик = 1; Ряд = 1; Ном = СоздатьОбъект("Справочник.Номенклатура"); Таб.ВыбратьСтроки(); Пока Таб.ПолучитьСтроку() = 1 Цикл Если Таб.Номенклатура.ЭтоГруппа() = 1 тогда Ном.ИспользоватьРодителя(Таб.Номенклатура); Ном.ВыбратьЭлементы(); Пока Ном.ПолучитьЭлемент() = 1 цикл Если (Ном.ЭтоГруппа() = 0) и (Ном.ПометкаУдаления() = 0) тогда Если пкОстатки = 1 тогда Если (ПустоеЗначение(Склад) = 1) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), , ,"Количество") <= 0) тогда Продолжить; КонецЕсли; ИначеЕсли (ПустоеЗначение(Склад) = 0) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), Склад, ,"Количество") <= 0) тогда Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; Фирма = ВернутьФирму(Ном); Если (пкОстатки = 1) и (ПустоеЗначение(Фирма) = 1) Тогда Фирма = ТекФирма.ТекущаяСтрока(); КонецЕсли; Списзнач(Отчет, Фирма, Ном, Ном.БазоваяЕдиница, Ном.Код, Столбик, Ряд); КонецЕсли; КонецЦикла; Ном.ИспользоватьРодителя(); иначе Фирма = ВернутьФирму(Таб.Номенклатура); Списзнач(Отчет, Фирма, Таб.Номенклатура, Таб.ЕдИзм, Таб.Номенклатура.Код, Столбик, Ряд); КонецЕсли; КонецЦикла; Если СорПоНаим.ТекущаяСтрока()=2 Тогда СписНаимКод.Сортировать("+Номенклатура"); ИначеЕсли СорПоНаим.ТекущаяСтрока()=3 Тогда СписНаимКод.Сортировать("-Номенклатура"); КонецЕсли; Если СорПоКоду.ТекущаяСтрока()=2 Тогда СписНаимКод.Сортировать("+Код"); ИначеЕсли СорПоКоду.ТекущаяСтрока()=3 Тогда СписНаимКод.Сортировать("-Код"); КонецЕсли; СписНаимКод.ВыбратьСтроки(); Пока СписНаимКод.ПолучитьСтроку()=1 Цикл Табл = СписНаимКод.Отчет; Фирма = СписНаимКод.Фирма; Номенклатура = СписНаимКод.Номенклатура; ЕдИзм = СписНаимКод.ЕдИзм; Столбик = СписНаимКод.Столбик; Ряд = СписНаимКод.Ряд; ДобавитьЦенник(Табл, Фирма, Номенклатура, ЕдИзм, Столбик, Ряд); КонецЦикла; Отчет.Показать("Ценники "+?(пкОстатки = 0,"",?(ПустоеЗначение(Склад)=1," по всем складам "," по складу: "+Склад))); КонецПроцедуры Процедура ПоКнПодбор() ОткрытьПодбор("Справочник.Номенклатура","ДляВыбора",,1,); КонецПроцедуры Процедура ОбработкаПодбора(Ном,Конт) //Если Ном.ТекущийЭлемент().ЭтоГруппа() = 1 тогда // Предупреждение("Нельзя выбирать группы"); // Возврат; //КонецЕсли; Если (Таб.НайтиЗначение(Ном.ТекущийЭлемент(),,"Номенклатура") = 0) или (Ном.ТекущийЭлемент().ЭтоГруппа() = 0) тогда Таб.НоваяСтрока(); Таб.Номенклатура = Ном.ТекущийЭлемент(); Если флБазЕдИзм = 1 Тогда Таб.ЕдИзм = Таб.Номенклатура.БазоваяЕдиница; Иначе СпрЕдИзм = СоздатьОбъект("Справочник.Единицы"); СпрЕдИзм.ИспользоватьВладельца(Таб.Номенклатура); СпрЕдИзм.ВыбратьЭлементы(); Пока СпрЕдИзм.ПолучитьЭлемент() = 1 Цикл Если СпрЕдИзм.ТекущийЭлемент() <> Таб.Номенклатура.БазоваяЕдиница Тогда Таб.ЕдИзм = СпрЕдИзм.ТекущийЭлемент(); Прервать; КонецЕсли; Если ПустоеЗначение(Таб.ЕдИзм) = 1 Тогда Таб.ЕдИзм = Таб.Номенклатура.БазоваяЕдиница; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ПриОткрытии() Перем СпрФирм; СорПоНаим.ДобавитьЗначение("Наименование"); СорПоНаим.ДобавитьЗначение("А-Я"); СорПоНаим.ДобавитьЗначение("Я-А"); СорПоКоду.ДобавитьЗначение("Код"); СорПоКоду.ДобавитьЗначение("ПоВозрастанию"); СорПоКоду.ДобавитьЗначение("ПоУбыванию"); СписНаимКод.НоваяКолонка("Отчет"); СписНаимКод.НоваяКолонка("Фирма"); СписНаимКод.НоваяКолонка("Номенклатура"); СписНаимКод.НоваяКолонка("ЕдИзм"); СписНаимКод.НоваяКолонка("Код"); СписНаимКод.НоваяКолонка("Столбик"); СписНаимКод.НоваяКолонка("Ряд"); Размер = 1; ДатаПечати = РабочаяДата(); добНДС = 1; флБазЕдИзм = 1; пкОстатки = 1; флЗаглавными = 0; Таб.НоваяКолонка("Номенклатура","Справочник.Номенклатура"); Таб.НоваяКолонка("ЕдИзм","Справочник.Единицы",,,"Ед.изм",7); Цена1 = Константа.РозничныйТипЦен; СпрФирм = СоздатьОбъект("Справочник.Фирмы"); СпрФирм.ВыбратьЭлементы(); Пока СпрФирм.ПолучитьЭлемент() = 1 Цикл ТекФирма.ДобавитьЗначение(СпрФирм.ТекущийЭлемент(), СпрФирм.ТекущийЭлемент().Наименование); КонецЦикла; Остатки = СоздатьОбъект("Регистр.ОстаткиТМЦ"); ПриВыбореОстатка(); КонецПроцедуры |
|||
28
Nirvana
29.07.12
✎
12:04
|
(26) Тебе стоит начинать с более простых вещей.
Попробуй сперва просто перебирать справочник и обращаться к атрибутам элемента. А потом уже используй эти отработанные методы в рамках задач типа (0). |
|||
29
SeeWorld
29.07.12
✎
12:26
|
Не пойму почему во внутреннем цикле не происходит добавление наименования в колонку "Номенклатура", а во внешнем все добавляется?(
|
|||
30
SeeWorld
29.07.12
✎
12:28
|
Если Таб.Номенклатура.ЭтоГруппа() = 1 тогда
Ном.ИспользоватьРодителя(Таб.Номенклатура); Ном.ВыбратьЭлементы(); Пока Ном.ПолучитьЭлемент() = 1 цикл Если (Ном.ЭтоГруппа() = 0) и (Ном.ПометкаУдаления() = 0) тогда Если пкОстатки = 1 тогда Если (ПустоеЗначение(Склад) = 1) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), , ,"Количество") <= 0) тогда Продолжить; КонецЕсли; ИначеЕсли (ПустоеЗначение(Склад) = 0) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), Склад, ,"Количество") <= 0) тогда Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; Фирма = ВернутьФирму(Ном); Если (пкОстатки = 1) и (ПустоеЗначение(Фирма) = 1) Тогда Фирма = ТекФирма.ТекущаяСтрока(); КонецЕсли; Списзнач(Отчет, Фирма, Ном, Ном.БазоваяЕдиница, Ном.Код, Столбик, Ряд); КонецЕсли; КонецЦикла; Ном.ИспользоватьРодителя(); иначе Фирма = ВернутьФирму(Таб.Номенклатура); Списзнач(Отчет, Фирма, Таб.Номенклатура, Таб.ЕдИзм, Таб.Номенклатура.Код, Столбик, Ряд); КонецЕсли; |
|||
31
SeeWorld
29.07.12
✎
15:08
|
Помогите отсортировать
|
|||
32
SeeWorld
29.07.12
✎
15:12
|
помогите написать код где надо(
|
|||
33
KRV
29.07.12
✎
15:16
|
(участливо) тестовое задание? )))
|
|||
34
Vladal
29.07.12
✎
15:16
|
Тебе в код
ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений"); ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента,"Номенклатура,Количество,Единица"); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл Надо добавить строчку: ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений"); ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента,"Номенклатура,Количество,Единица"); ТаблицаДокумента.НоваяСтрока("Код"); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл Потом делать, как советовали в (8) |
|||
35
Vladal
29.07.12
✎
15:16
|
(33) Ты добрый и участливый.
|
|||
36
KRV
29.07.12
✎
15:23
|
(35) дык челу надо было в институте учиться, халява в жизни не катит... )))
|
|||
37
Vladal
29.07.12
✎
15:29
|
(36) Я в институтах академиев не кончал. Я жлектрик, есичо.
|
|||
38
Vladal
29.07.12
✎
15:30
|
(0) Читай внимательно учебник по 1С http://mista.ru/tutor_1c/index.htm
|
|||
39
KRV
29.07.12
✎
15:32
|
(37) хых.. у меня пять неначатых высших и чо? )))
|
|||
40
Vladal
29.07.12
✎
16:15
|
(39) Ты хоть начал, я ж и не начинал.
|
|||
41
SeeWorld
29.07.12
✎
16:52
|
KRV, если я в языке хорошо разбирался я бы тебе помог и многим другим. Не знаю как ты, но я получаю удовольствие от того, что кому-то помог ...
|
|||
42
Mikeware
29.07.12
✎
16:53
|
(41) проблема не в знании языка...
кстати, для знания яхыка достаточно СП |
|||
43
SeeWorld
29.07.12
✎
16:53
|
Vladal, я все правильно сделал?
ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений"); ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента,"Номенклатура,Количество,Единица"); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений"); ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента,"Номенклатура,Количество,Единица"); ТаблицаДокумента.НоваяСтрока("Код"); ТаблицаДокумента.ВыбратьСтроки(); Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл ВремНоменклатура = ТаблицаДокумента.Номенклатура; Если ВремНоменклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга Тогда Продолжить; КонецЕсли; Если флКоличество = 1 Тогда КолНом = ТаблицаДокумента.Количество; Если ТаблицаДокумента.Единица.Наименование <> "ШТ." Тогда КолНом = 1; КонецЕсли; Для Сч = 1 По КолНом Цикл Таб.НоваяСтрока(); Таб.Номенклатура= ТаблицаДокумента.Номенклатура; Таб.ЕдИзм = ТаблицаДокумента.Единица; Таб.Код = ТаблицаДокумента.Номенклатура.Код; КонецЦикла; Иначе Таб.НоваяСтрока(); Таб.Номенклатура= ТаблицаДокумента.Номенклатура; Таб.ЕдИзм = ТаблицаДокумента.Единица; Таб.Код = ТаблицаДокумента.Номенклатура.Код; КонецЕсли; КонецЦикла; КонецЦикла; |
|||
44
SeeWorld
29.07.12
✎
16:56
|
Mikeware, расшифруй СП.
|
|||
45
Mikeware
29.07.12
✎
16:58
|
(44) Синтакс-помощник (встроенная справка по языку).
Хотя при желании в сети можно найти и отсканенные книжки с описанием языка. |
|||
46
SeeWorld
29.07.12
✎
17:00
|
Ой, блин я ступил, Vladal забудь про (43)
|
|||
47
SeeWorld
29.07.12
✎
17:05
|
Vladal, что-то все равно не работает. Не заполняется колонка "Код".
|
|||
48
Mikeware
29.07.12
✎
17:07
|
(47) открой для себя существование отладчика...
|
|||
49
SeeWorld
29.07.12
✎
17:08
|
||||
50
dedmoroz777
29.07.12
✎
17:24
|
ТаблицаДокумента.НоваяСтрока("Код"); - это что такое?
|
|||
51
dedmoroz777
29.07.12
✎
17:25
|
Код, вообще трындец)
|
|||
52
Mikeware
29.07.12
✎
17:48
|
(50) Это ошибка. которая там же, где и всегда...
|
|||
53
SeeWorld
29.07.12
✎
22:33
|
Ура отсортировал!
|
|||
54
SeeWorld
30.07.12
✎
00:29
|
А теперь другая проблема(
|
|||
55
SeeWorld
30.07.12
✎
00:31
|
Скажите пожалуйста, почему у меня не заполняется в таблице значений "СписНаимКод" колонка "Номенклатура" наименованием товаров?
Таб.ВыбратьСтроки(); Пока Таб.ПолучитьСтроку() = 1 Цикл Если Таб.Номенклатура.ЭтоГруппа() = 1 тогда Ном.ИспользоватьРодителя(Таб.Номенклатура); Ном.ВыбратьЭлементы(); Пока Ном.ПолучитьЭлемент() = 1 цикл Если (Ном.ЭтоГруппа() = 0) и (Ном.ПометкаУдаления() = 0) тогда Если пкОстатки = 1 тогда Если (ПустоеЗначение(Склад) = 1) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), , ,"Количество") <= 0) тогда Продолжить; КонецЕсли; ИначеЕсли (ПустоеЗначение(Склад) = 0) тогда Если (Остатки.СводныйОстаток(, Ном.ТекущийЭлемент(), Склад, ,"Количество") <= 0) тогда Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; Фирма = ВернутьФирму(Ном); Если (пкОстатки = 1) и (ПустоеЗначение(Фирма) = 1) Тогда Фирма = ТекФирма.ТекущаяСтрока(); КонецЕсли; СписНаимКод.НоваяСтрока(); СписНаимКод.Отчет = Отчет; СписНаимКод.Фирма = Фирма; Сообщить(Ном); // <-- выводятся наименования СписНаимКод.Номенклатура = Ном; // <-- не происходит заполнение колонки СписНаимКод.ЕдИзм = Ном.БазоваяЕдиница; СписНаимКод.Код = Ном.Код; СписНаимКод.Столбик = Столбик; СписНаимКод.Ряд = Ряд; КонецЕсли; КонецЦикла; Ном.ИспользоватьРодителя(); иначе Фирма = ВернутьФирму(Таб.Номенклатура); СписНаимКод.НоваяСтрока(); СписНаимКод.Отчет = Отчет; СписНаимКод.Фирма = Фирма; СписНаимКод.Номенклатура = Таб.Номенклатура; СписНаимКод.ЕдИзм = Таб.ЕдИзм; Сообщить(Таб.Номенклатура.Код); СписНаимКод.Код = Таб.Номенклатура.Код; // <-- происходит заполнение колонки СписНаимКод.Столбик = Столбик; СписНаимКод.Ряд = Ряд; КонецЕсли; КонецЦикла; //Сортировка по коду и наименованию товара Если СорПоНаим.ТекущаяСтрока()=2 Тогда СписНаимКод.Сортировать("+Номенклатура"); ИначеЕсли СорПоНаим.ТекущаяСтрока()=3 Тогда СписНаимКод.Сортировать("-Номенклатура"); КонецЕсли; Если СорПоКоду.ТекущаяСтрока()=2 Тогда СписНаимКод.Сортировать("+Код"); ИначеЕсли СорПоКоду.ТекущаяСтрока()=3 Тогда СписНаимКод.Сортировать("-Код"); КонецЕсли; СписНаимКод.ВыбратьСтроки(); Пока СписНаимКод.ПолучитьСтроку()=1 Цикл Табл = СписНаимКод.Отчет; Фирма = СписНаимКод.Фирма; Номенклатура = СписНаимКод.Номенклатура; ЕдИзм = СписНаимКод.ЕдИзм; Столбик = СписНаимКод.Столбик; Ряд = СписНаимКод.Ряд; ДобавитьЦенник(Табл, Фирма, Номенклатура, ЕдИзм, Столбик, Ряд); КонецЦикла; СписНаимКод.УдалитьСтроки(); Процедура ПриОткрытии() Перем СпрФирм; СорПоНаим.ДобавитьЗначение("Наименование"); СорПоНаим.ДобавитьЗначение("А-Я"); СорПоНаим.ДобавитьЗначение("Я-А"); СорПоКоду.ДобавитьЗначение("Код"); СорПоКоду.ДобавитьЗначение("ПоВозрастанию"); СорПоКоду.ДобавитьЗначение("ПоУбыванию"); СписНаимКод.НоваяКолонка("Отчет"); СписНаимКод.НоваяКолонка("Фирма"); СписНаимКод.НоваяКолонка("Номенклатура"); СписНаимКод.НоваяКолонка("ЕдИзм"); СписНаимКод.НоваяКолонка("Код"); СписНаимКод.НоваяКолонка("Столбик"); СписНаимКод.НоваяКолонка("Ряд"); Размер = 1; ДатаПечати = РабочаяДата(); добНДС = 1; флБазЕдИзм = 1; пкОстатки = 1; флЗаглавными = 0; Таб.НоваяКолонка("Номенклатура","Справочник.Номенклатура"); Таб.НоваяКолонка("ЕдИзм","Справочник.Единицы",,,"Ед.изм",7); Цена1 = Константа.РозничныйТипЦен; СпрФирм = СоздатьОбъект("Справочник.Фирмы"); СпрФирм.ВыбратьЭлементы(); Пока СпрФирм.ПолучитьЭлемент() = 1 Цикл ТекФирма.ДобавитьЗначение(СпрФирм.ТекущийЭлемент(), СпрФирм.ТекущийЭлемент().Наименование); КонецЦикла; Остатки = СоздатьОбъект("Регистр.ОстаткиТМЦ"); ПриВыбореОстатка(); КонецПроцедуры |
|||
56
Oleg_Kag
30.07.12
✎
06:32
|
СписНаимКод.Номенклатура = Ном.Наименование;
|
|||
57
SeeWorld
30.07.12
✎
08:16
|
Так пробовал, но тогда происходит заполнение всех строк колонки "Номенклатура" одним наименованием, а не наименованиями элементов подгруппы.http://upwap.ru/2673091
|
|||
58
Oleg_Kag
30.07.12
✎
09:04
|
Хорошо, пробуем так:
СписНаимКод.Номенклатура=Ном.ТекущийЭлемент(); |
|||
59
SeeWorld
30.07.12
✎
09:58
|
Oleg_Kag,ты не представляешь как ты мне помог. Огромное тебе спасибо! Ребятам тоже! Тему можно закрывать! Ура!)))
|
|||
60
big
30.07.12
✎
10:17
|
(0) сделай ценники во внешних формах (mxl), где будут указаны все данный об этом ценнике (наименование, кол-во по горизонтали и вертикали и т.д.) и загружай их в список. Чтобы не тыркать в кучу радиобаттонов, а выбирать из списка (таблицы)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |