Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> УТП остатки номенклатуры в списке справочника 2 страниц V   1 2 >          
nazarenko Подменю пользователя
сообщение 07.10.12, 13:14
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Подскажите, пожайлуста, как написать программку
с помощью которой выводились бы остатки (к-во) номенклатуры
в списке справочника номенклатура (рядом с каждым наименованием).
Для 1С: 8.2 УТП для Украины 1.2.9.1 от 23.08.2012.
В типовой конфигурации остатки выводятся внизу только
для одной текущей позиции.

Спасибо.


 ! 

Правила, п.5.
 


Сообщение отредактировал logist - 07.10.12, 13:34

Vofka Подменю пользователя
сообщение 07.10.12, 13:30
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Боюсь, что с такой постановкой вопроса вам лучше обратиться к специалисту.

Ardi Подменю пользователя
сообщение 07.10.12, 13:56
Сообщение #3

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

В документе "Реализация" и других нажать кнопку "Подбор".


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

nazarenko Подменю пользователя
сообщение 07.10.12, 14:22
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Ardi @ 07.10.12, 14:56) *
В документе "Реализация" и других нажать кнопку "Подбор".


При нажатии кнопки подбор остаток можно увидеть
только по одной текущей позиции.
А нужно что бы при открытии справочника "Номенклатура"
(через меню Справочники-Номенклатура) остатки отображались рядом с наименованием каждого товара!
Очень нужно!

Ardi Подменю пользователя
сообщение 07.10.12, 14:30
Сообщение #5

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(nazarenko @ 07.10.12, 15:22) *
Очень нужно!

Есть варианты:
1) Обучение программированию - 4500 грн., 40 часов лекций, 200 часов самостоятельных занятий.
2) Вызвать специалиста - 450 грн.

Цитата(nazarenko @ 07.10.12, 15:22) *
При нажатии кнопки подбор остаток можно увидеть
только по одной текущей позиции.

Нифига подобного, там варианты.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

nazarenko Подменю пользователя
сообщение 07.10.12, 14:37
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Vofka @ 07.10.12, 14:30) *
Боюсь, что с такой постановкой вопроса вам лучше обратиться к специалисту.


Я сам программист (в 1С 7.7 программирую более 10 лет!).
А вот с 8-ой пока не очень. Что называется 1-раз в первый класс!

Vofka Подменю пользователя
сообщение 07.10.12, 14:57
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Если я не ошибаюсь, то в какой-то книге Радченко (по-моему "Простые примеры разработки") есть пример, который демонстрирует то, что вам нужно.

nazarenko Подменю пользователя
сообщение 07.10.12, 16:00
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Ardi @ 07.10.12, 15:30) *
Есть варианты:
1) Обучение программированию - 4500 грн., 40 часов лекций, 200 часов самостоятельных занятий.
2) Вызвать специалиста - 450 грн.


Нифига подобного, там варианты.


Варианты есть при нажатии кнопки подбор?
И там есть возможность видеть остатки по всем позициям сразу?

Или можно видеть остатки по всем позициям сразу при открытии
справочника из меню Справочники-Номенклатура?

Цитата(Vofka @ 07.10.12, 15:57) *
Если я не ошибаюсь, то в какой-то книге Радченко (по-моему "Простые примеры разработки") есть пример, который демонстрирует то, что вам нужно.


Спасибо за наводку!

Ardi Подменю пользователя
сообщение 07.10.12, 17:09
Сообщение #9

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(nazarenko @ 07.10.12, 17:00) *
Варианты есть при нажатии кнопки подбор?
И там есть возможность видеть остатки по всем позициям сразу?

В подборе можно видеть остатки и резервы по всем сразу.

Цитата(nazarenko @ 07.10.12, 15:37) *
Я сам программист (в 1С 7.7 программирую более 10 лет!).
А вот с 8-ой пока не очень. Что называется 1-раз в первый класс!

Вот немного неправильный вариант. Правильно делать "При получении данных"
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    //РОМ    
    Если ДанныеСтроки.Ссылка.ЭтоГруппа Тогда
        Возврат;
    КонецЕсли;
    мПоискОбъектовВСпискахДанных.СписокПриВыводеСтрокиСпискаОтбораДанных(Элемент, ОформлениеСтроки, ДанныеСтроки);
    
    запрос = Новый Запрос;
    если  РольДоступна("ПолныеПрава") или ИмяПользователя() = "Менеджер по продажам2" Тогда
        запрос.Текст = "ВЫБРАТЬ
                       |    ЦеныНоменклатурыСрезПоследних.Валюта,
                       |    ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
                       |    ЦеныНоменклатурыСрезПоследних.ТипЦен.Наименование,
                       |    1 КАК Поле1
                       |ИЗ
                       |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                       |            ,
                       |            Номенклатура = &Номенкл
                       |                И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                       |
                       |ОБЪЕДИНИТЬ
                       |
                       |ВЫБРАТЬ
                       |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Валюта,
                       |    ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена,
                       |    ЦеныНоменклатурыКонтрагентовСрезПоследних.ЕдиницаИзмерения,
                       |    ЦеныНоменклатурыКонтрагентовСрезПоследних.ТипЦен.Наименование,
                       |    2
                       |ИЗ
                       |    РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, Номенклатура = &Номенкл) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних
                       |
                       |ОБЪЕДИНИТЬ
                       |
                       |ВЫБРАТЬ
                       |    3,
                       |    ТоварыНаСкладахОстатки.КоличествоОстаток,
                       |    3,
                       |    3,
                       |    3
                       |ИЗ
                       |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                       |            ,
                       |            Номенклатура = &Номенкл
                       |                И (&ВсеСклады
                       |                    ИЛИ Склад = &ВыбСклад)) КАК ТоварыНаСкладахОстатки
                       |
                       |ОБЪЕДИНИТЬ
                       |
                       |ВЫБРАТЬ
                       |    4,
                       |    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
                       |    4,
                       |    4,
                       |    4
                       |ИЗ
                       |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
                       |            ,
                       |            Номенклатура = &Номенкл
                       |                И (&ВсеСклады
                       |                    ИЛИ Склад = &ВыбСклад)) КАК ТоварыВРезервеНаСкладахОстатки";
    Иначе
        запрос.Текст = "ВЫБРАТЬ
                       |    ЦеныНоменклатурыСрезПоследних.Валюта,
                       |    ЦеныНоменклатурыСрезПоследних.Цена,
                       |    ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения,
                       |    ЦеныНоменклатурыСрезПоследних.ТипЦен.Наименование,
                       |    1 КАК Поле1
                       |ИЗ
                       |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                       |            ,
                       |            Номенклатура = &Номенкл
                       |                И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                       |
                       |ОБЪЕДИНИТЬ
                       |
                       |ВЫБРАТЬ
                       |    NULL,
                       |    NULL,
                       |    NULL,
                       |    NULL,
                       |    2
                       |
                       |ОБЪЕДИНИТЬ
                       |
                       |ВЫБРАТЬ
                       |    3,
                       |    ТоварыНаСкладахОстатки.КоличествоОстаток,
                       |    3,
                       |    3,
                       |    3
                       |ИЗ
                       |    РегистрНакопления.ТоварыНаСкладах.Остатки(
                       |            ,
                       |            Номенклатура = &Номенкл
                       |                И (&ВсеСклады
                       |                    ИЛИ Склад = &ВыбСклад)) КАК ТоварыНаСкладахОстатки
                       |
                       |ОБЪЕДИНИТЬ
                       |
                       |ВЫБРАТЬ
                       |    4,
                       |    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
                       |    4,
                       |    4,
                       |    4
                       |ИЗ
                       |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
                       |            ,
                       |            Номенклатура = &Номенкл
                       |                И (&ВсеСклады
                       |                    ИЛИ Склад = &ВыбСклад)) КАК ТоварыВРезервеНаСкладахОстатки";
    КонецЕсли;
    Запрос.УстановитьПараметр("Номенкл",ДанныеСтроки.Ссылка);
    Запрос.УстановитьПараметр("ТипЦен",Константы.ТипыЦенНоменклатурыРозница.Получить());
         Запрос.УстановитьПараметр("ВсеСклады",  ВыбСклад.Пустая());
    Запрос.УстановитьПараметр("ВыбСклад",  ВыбСклад);

    ааа=запрос.Выполнить().Выгрузить();
    ТоварОстаток=0;
    ТоварРезерв=0;
    Если     ааа.Количество()>0 Тогда
        ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение=  "";
        ОформлениеСтроки.Ячейки.ЦенаЗакупочная.Значение=  "";
        ОформлениеСтроки.Ячейки.ОстатокТовара.Значение=  "";        
        
        для каждого ббб из ааа цикл
            если ббб.Поле1=1 Тогда
                //если  РольДоступна("ПолныеПрава") Тогда
                    ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение=  ""+ббб.Цена+" " +ббб.Валюта;        
                //КонецЕсли;
            ИначеЕсли ббб.Поле1=2 Тогда
                если  РольДоступна("ПолныеПрава") или ИмяПользователя() = "Менеджер по продажам2" Тогда
                    ОформлениеСтроки.Ячейки.ЦенаЗакупочная.Значение=  ""+ббб.Цена+" " +ббб.Валюта;
                КонецЕсли;
            ИначеЕсли ббб.Поле1=3 Тогда
                ТоварОстаток=?(ббб.Цена=Null,0,ббб.Цена);
            ИначеЕсли ббб.Поле1=4 Тогда
                ТоварРезерв=?(ббб.Цена=Null,0,ббб.Цена);
            КонецЕсли;
        КонецЦикла;
    Иначе
        ОформлениеСтроки.Ячейки.ЦенаРозничная.Значение=  "";
    КонецЕсли;
    ОстатокСРезевром=ТоварОстаток-ТоварРезерв;
    ОформлениеСтроки.Ячейки.ОстатокТовара.Значение=  ""+?(ОстатокСРезевром=0,"",ОстатокСРезевром);
    ОформлениеСтроки.Ячейки.Резерв.Значение=  ""+?(ТоварРезерв=0,"",ТоварРезерв);        
    //РОМ
КонецПроцедуры


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: nazarenko,

nazarenko Подменю пользователя
сообщение 07.10.12, 18:16
Сообщение #10

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Ardi @ 07.10.12, 18:09) *
В подборе можно видеть остатки и резервы по всем сразу.


ОГО какая БОЬШАЯ!!!
Спасибо за труды!
А нельзя как нибудь по "легче" написать?, пардон ))).

Что то типа как в 7.7
Ост = Ит.СКД(СчетТМЦ,"К",,МестоХранения,ТекущийЭлемент());

)))???

Так же не понятна фраза "При получении данных"?
Эта название процедуры?

Пишет ошибка
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(1020,50)}: Переменная не определена (ВыбСклад)

Не выбран склад!
А как написать по всем складам?


 ! 

правила п.12,13
 


Сообщение отредактировал MATEVI - 07.10.12, 21:04

nazarenko Подменю пользователя
сообщение 07.10.12, 22:28
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0


 ! 

Я не желаю читать правила...
 


Сообщение отредактировал MATEVI - 07.10.12, 23:26

nazarenko Подменю пользователя
сообщение 08.10.12, 19:00
Сообщение #12

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(nazarenko @ 07.10.12, 23:28) *


ПРОЧЕЛ ПРАВИЛА!!! уже 2-а раза )))

nazarenko Подменю пользователя
сообщение 08.10.12, 22:38
Сообщение #13

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Спасибо, все получилось!!!

Есть мнение, что при работе нескольких пользователей
данная програмка существенно будет замедлять работу 1С!

И ее, как Вы ранее отметели, более правильно написать
через событие ПриПолученииДанных!

Но как это сделать???

Спасибо за ответ!

Ardi Подменю пользователя
сообщение 08.10.12, 23:20
Сообщение #14

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Поехали дальше
Процедура ПоказатьОстаткиВДокументе(ОформленияСтрок)
        Массив = Новый Массив;
        Для Каждого ОформлениеСтроки из ОформленияСтрок Цикл
            Массив.Добавить(ОформлениеСтроки.ДанныеСтроки.Номенклатура);
        КонецЦикла;    
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
        |    ТоварыНаСкладахОстатки.Номенклатура,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК ОстатокНаВыбраномСкладе,
        |    ТоварыНаСкладахОстатки1.КоличествоОстаток КАК ОстатокНаОстальныхСкладах
        |ИЗ
        |    РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &ВыбСклад) КАК ТоварыНаСкладахОстатки
        |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад <> &ВыбСклад) КАК ТоварыНаСкладахОстатки1
        |        ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыНаСкладахОстатки1.Номенклатура
        |ГДЕ
        |    ТоварыНаСкладахОстатки.Номенклатура В(&спНоменклатура)";
        Запрос.УстановитьПараметр("ВыбСклад",УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойСклад"));
        Запрос.УстановитьПараметр("спНоменклатура",Массив);
        ТЗ=запрос.Выполнить().Выгрузить();
        Для Каждого ОформлениеСтроки из ОформленияСтрок Цикл
            строкаТЗ=тз.Найти(Новый Структура("Номенклатура",ОформлениеСтроки.ДанныеСтроки.Номенклатура));
            строкаТЗ=тз.Найти(ОформлениеСтроки.ДанныеСтроки.Номенклатура, "Номенклатура");
            Если строкаТЗ = Неопределено Тогда
                зн1=""; зн2="";
            Иначе
                зн1=строкаТЗ.ОстатокНаВыбраномСкладе;
                зн2=строкаТЗ.ОстатокНаОстальныхСкладах;
            КонецЕсли;
            ОформлениеСтроки.Ячейки.ОстатокТекущегоСклада.Значение=зн1;
            ОформлениеСтроки.Ячейки.ОстатокОстальныхСкладов.Значение=зн2;
        КонецЦикла;     
КонецПроцедуры

Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
        ПоказатьОстаткиВДокументе(ОформленияСтрок);
КонецПроцедуры


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: nazarenko,

nazarenko Подменю пользователя
сообщение 09.10.12, 0:01
Сообщение #15

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Я конечно, в 1С 8, плохо ориентируюсь!
Добавил "ДокументСписокПриПолученииДанных(..."
в справочнике номенклатура (форма сприска).
Эта процедура не выполняется!
Ее нужно вызывать (подключить/прицепить к событию)???

Ardi Подменю пользователя
сообщение 09.10.12, 0:32
Сообщение #16

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

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


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: nazarenko,

Fynjy Подменю пользователя
сообщение 09.10.12, 6:44
Сообщение #17

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Цитата(Ardi @ 07.10.12, 18:09) *
Вот немного неправильный вариант. Правильно делать "При получении данных"

Ацкий код ...


Signature

nazarenko Подменю пользователя
сообщение 09.10.12, 9:16
Сообщение #18

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

Пишет ошибку:
Поле объекта не обнаружено (Номенклатура)
для строки
Массив.Добавить(ОформлениеСтроки.ДанныеСтроки.Номенклатура);


Для меня это вообще загадка природы! )))
Что там надо писать?

Vofka Подменю пользователя
сообщение 09.10.12, 9:21
Сообщение #19

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Цитата(nazarenko @ 09.10.12, 10:16) *
Что там надо писать?

Телепатирую... 10%..50%...100% complete!!!
Массив.Добавить(ОформлениеСтроки.ДанныеСтроки.Ссылка);

Спасибо сказали: nazarenko,

nazarenko Подменю пользователя
сообщение 09.10.12, 9:36
Сообщение #20

Говорящий
***
Группа: Пользователи
Сообщений: 85
Из: Днепропетровск
Спасибо сказали: 1 раз
Рейтинг: 0

УРА!!!
ЗАРАБОТАЛО!!!

Всем спасибо! )))

Как бы еще цену прикрутить?

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Тема закрыта Новая тема
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 01.11.24, 0:47
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!