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

Хранилище

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

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



> Как это сделать?          
2510506 Подменю пользователя
сообщение 17.02.11, 8:28
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 139
Спасибо сказали: 0 раз
Рейтинг: 0

Доброе время суток)
Подскажите плз как сделать такую штуку



там есть такое поле как "КОЛ-ВО МЕСТ"
и там указано "уп.6+шт.0"
Я только внедряю 1с
есть склад на котором нужно все переписать и внести в 1с торговля и склад
допустим в остатках у меня есть 6 коробок по 12 рулонов и есть отдельно 10 рулонов
как мне реализовать это на моей конфигурации?

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

Batchir Подменю пользователя
сообщение 17.02.11, 9:12
Сообщение #2

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

не помню, можно ли в 7.7, но пробовали разными строками бить один и тот же товар. В одной списывать упаковки, в другой штуки?

Flexy Подменю пользователя
сообщение 17.02.11, 10:22
Сообщение #3

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 231 раз
Рейтинг: 0

Думаю так не получиться.1С-ка ругнется, что "Обнаружены одинаковые товары в строках 1 и 2".
Нужно думать другой способ.

Batchir Подменю пользователя
сообщение 17.02.11, 10:24
Сообщение #4

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Если честно то мне всегда казалось что это настраиваемая функция - контроль дублей строк, а так хз, давно ТиС не ковырял и под рукой нет

Acid Подменю пользователя
сообщение 17.02.11, 10:24
Сообщение #5

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 379 раз
Рейтинг: 0

Кво 6,3 уп. не прокатит?

Batchir Подменю пользователя
сообщение 17.02.11, 10:28
Сообщение #6

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Цитата(Acid @ 17.02.11, 11:24) *
Кво 6,3 уп. не прокатит?

Не катит такой подход
А если в упаковке 13 рулонов и списать надо 3?
1. Вычислять с калькулятором нужно
2. Бесконечная дробь

Flexy Подменю пользователя
сообщение 17.02.11, 10:29
Сообщение #7

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 231 раз
Рейтинг: 0

Цитата(Batchir @ 17.02.11, 11:24) *
Если честно то мне всегда казалось что это настраиваемая функция - контроль дублей строк, а так хз, давно ТиС не ковырял и под рукой нет

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

Flexy Подменю пользователя
сообщение 17.02.11, 10:30
Сообщение #8

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 231 раз
Рейтинг: 0

Вывод: Константы=> Проверять Дубли строк = Нет. wink.gif

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

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

Завсегдатай
****
Группа: Пользователи
Сообщений: 139
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Flexy @ 17.02.11, 11:30) *
Вывод: Константы=> Проверять Дубли строк = Нет. wink.gif

Спасибо)) с этим понял
но как сделать следущее
1 ящик = 10 рулонов = 200 грн
допустим я сделал приходную накладную со след данными
3 ящика (по 10 рулонов в каждом ящике = 30 рулонов) по 200 грн = 600 грн
и плюс еще 5 рулонов по 20 грн
Это все один вид обоев

Но затем когда я делаю просмотр остатков по товару я вижу следущее

Как мне сделать чтобы отображалось отдельно количество ящиков на складе и кол-во обоев :?
большое спасибо за разъяснения!
Причина редактирования: Вставляйте картинки НЕ ссылками

Flexy Подменю пользователя
сообщение 17.02.11, 20:29
Сообщение #10

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 231 раз
Рейтинг: 0

Не видно картинку =(.В чем там у вас проблема?

2510506 Подменю пользователя
сообщение 17.02.11, 20:33
Сообщение #11

Завсегдатай
****
Группа: Пользователи
Сообщений: 139
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Flexy @ 17.02.11, 21:29) *
Не видно картинку =(.В чем там у вас проблема?

отправил в личку

Zaval Подменю пользователя
сообщение 17.02.11, 20:42
Сообщение #12

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Это не проблема.
Это желание хранить остатки в нескольких единицах измерения(в единицах прихода - точнее). Списывать по определенной стратегии и при списании отражать разбарахоливание более крупных единиц, буде оное потребуется.

Zaval Подменю пользователя
сообщение 17.02.11, 20:46
Сообщение #13

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

biggrin.gif Единица измерения должна иметь признак "Можно забарахолить обратно!"

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

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 231 раз
Рейтинг: 0

Да там и коэффициенты единиц измерения не правильно выставили.
Отчет же по идее должен без доработок выводить остатки товара в приходуемых единицах измерения?

Acid Подменю пользователя
сообщение 17.02.11, 23:35
Сообщение #15

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 379 раз
Рейтинг: 0

Цитата(2510506 @ 17.02.11, 20:14) *
но как сделать следущее
1 ящик = 10 рулонов = 200 грн
допустим я сделал приходную накладную со след данными
3 ящика (по 10 рулонов в каждом ящике = 30 рулонов) по 200 грн = 600 грн
и плюс еще 5 рулонов по 20 грн
Это все один вид обоев

Как мне сделать чтобы отображалось отдельно количество ящиков на складе и кол-во обоев :?
большое спасибо за разъяснения!

интересная тема. злободневная...
а пример неудачен. лучше так:
1 ящик = 7 упаковок
1 упаковка = 6 рулонов
задача следующая:
приходуем в ящиках, расходуем в ящиках. а вернули 3 рулона. варианты решения? какие коэффициенты ставить? какая базовая единица?
тут всплывает законное условие - если в приходной накладной "ящики", то мы как бы обязаны приходовать именно ящики. иначе можно придраться.

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

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Базовую ставить минимально делимую (с коэф. 1), приходовать так как приходит, расходовать так как уходит, следить за партионным учетом.
Если нужны извраты по учету - доработать. В конкретном случае можно написать отдельный отчет, который выгребет данные по остаткам партий,
проанализирует партии в каких единицах приходили, проанализирует партии в каких единицах уходили, всё это сведет в кучу и выдаст результат

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

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 379 раз
Рейтинг: 0

да, но коэффициенты будут "рагульные", т.к. будет получаться дробное количество. окрулять до целого? все-равно погрешность будет вылезать.

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

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

Тогда, как вариант, ввести базовую единицу хранения остатков. И при приходе и расходе пересчитывать в нее, согласно коэффициентам.

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

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Цитата(Ziam @ 18.02.11, 10:33) *
Тогда, как вариант, ввести базовую единицу хранения остатков. И при приходе и расходе пересчитывать в нее, согласно коэффициентам.

А разве остаки в ТиСе храняться не в базовой? Это вопрос, просто я не помню и мне кажется что по другому и не должно быть, иначе ног не вытянешь.

5_kopeek Подменю пользователя
сообщение 18.02.11, 11:12
Сообщение #20

Ветеран
*******
Женщине-одинэснику
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0

Возьму для разбора пример сложнее:
1 ящ. = 7 уп.
1 уп. = 6 р.

С минимальным дописыванием предлагаю такой вариант.
Базовая единица -- самая мелкая, т.е. рулон. Остальные единицы добавляем в справочник единиц с коэффициентами перерасчета из базовой. А именно:
для упаковки коэффициент равен 6, для ящика -- 6 х 7 = 42.
При оприходовании, списании, возврате можно выбирать любое к-во в любых единицах. Вероятно, если захотите пользоваться стандартным подбором в разных единицах измерения, придется немного подкорректировать. Но если пользоваться сканером, можно обойтись без дописок.
Думаю, что функция перерасчета из единицы в единицу в глобальном модуле есть.
Поскольку весь учет ведется в базовых единицах, в них и выводятся результаты. Чтобы получить отчеты (печформы накладных и пр.), необходимо в глобальный модуль закинуть функцию типа такой:

//*********************************************************************
Функция ВыбратьЕдиницы(Товар,ТаблЕд)
    Если ТаблЕд.ТипЗначенияСтр()<>"ТаблицаЗначений" Тогда
        Возврат 0;
    КонецЕсли; // ТаблЕд.ТипЗначенияСтр()<>"ТаблицаЗначений"
    Если ТаблЕд.КоличествоКолонок()<>0 Тогда
        ТаблЕд.УдалитьСтроки();
    Иначе                  
        таблЕд.НоваяКолонка("ед","Справочник.ЕдиницыИзмерения",,);
        ТаблЕд.НоваяКолонка("ИмяЕд","Строка",5,);                
        ТаблЕд.НоваяКолонка("Коэф","Число",10,3);
    КонецЕсли; // ТаблЕд.КоличествоКолонок()<>0
    СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
    СпрЕд.ИспользоватьВладельца(Товар);
    Если СпрЕд.ВыбратьЭлементы()=0 Тогда
        Возврат 0;
    КонецЕсли; // СпрЕд.ВыбратьЭлементы()=0
    Пока СпрЕд.ПолучитьЭлемент()=1 Цикл
        ТаблЕд.НоваяСтрока();
        ТаблЕд.Ед=Спр.ТекущийЭлемент();// на всякий случай
        ТаблЕд.ИмяЕд=Спр.Наименование; // это сокращенное наименование для печати
        ТаблЕд.Коэф=Спр.Коэффициент;
    КонецЦикла;  
    ТаблЕд.Сортировать("-Коэф");
    Возврат 1;
КонецФункции //ВыбратьЕдиницы

//*********************************************************************
Функция ДобавитьРазделитель(Стр,Разделитель)
    Если ПустоеЗначение(СкорЛП(Стр))=1 Тогда
        Возврат Стр;
    Иначе
        Возврат Стр+Разделитель;
    КонецЕсли; // ПустоеЗначение(СкорЛП(Стр))=1
КонецФункции //ДобавитьРазделитель

// надо обратить внимание на обработку таких ошибок, как          
//     наличие нескольких единиц с одинаковым коэф;
//*********************************************************************
Функция ФорматКвоВоВсехЕд(Товар,Кво)
    Перем ТаблЕд,РезФормат;  
    Если Кво<0 Тогда
        Возврат Кво;
    КонецЕсли; // Кво<0
    Если ПустоеЗначение(Товар)=1 Тогда
        Возврат Кво;
    КонецЕсли; // ПустоеЗначение(Товар)=1  
    РезФормат="";
    Разделитель="+";
    ТаблЕд=СоздатьОбъект("ТаблицаЗначений");
    Если ВыбратьЕдиницы(Товар,ТаблЕд)=0  Тогда
        Возврат Кво;
    КонецЕсли; // ВыбратьЕдиницы(Товар,ТаблЕд)=0
    Если Кво=0 Тогда
        РезФормат=РезФормат+Кво+" "+ТаблЕд.ПолучитьЗначение(ТаблЕд.КоличествоСтрок(),"ИмяЕд");
        Возврат РезФормат;
    КонецЕсли; // Кво=0  
    ТаблЕд.ВыбратьСтроки();
    ОстКво=Кво;
    Пока ТаблЕд.ПолучитьСтроку()=1 Цикл
        к=ТаблЕд.Коэф;
        Если к=0 Тогда
            Продолжить;
        КонецЕсли; // ТаблЕд.Коэф=0
        имяЕд=ТаблЕд.ИмяЕд;
        Если ОстКво>0 Тогда
            ТекКво=Цел(ОстКво/к);
            Если ТаблЕд.НомерСтроки=ТаблЕд.КоличествоСтрок() Тогда
                РезФормат=ДобавитьРазделитель(РезФормат,Разделитель)+ОстКво+ИмяЕд;
                Возврат РезФормат;
            ИначеЕсли ТекКво=0 Тогда
                Продолжить;
            КонецЕсли; // ТаблЕд.НомерСтроки=ТаблЕд.КоличествоСтрок()
            ОстКво=ОстКво-ТекКво;
            РезФормат=ДобавитьРазделитель(РезФормат,Разделитель)+ТекКво+ИмяЕд;
        КонецЕсли; // ОстКво>0
    КонецЦикла;
    Если ПустоеЗначение(СокрЛП(РезФормат))=1 Тогда
        Возврат Кво;
    Иначе
        Возврат РезФормат;
    КонецЕсли; // ПустоеЗначение(СокрЛП(РезФормат))=1
КонецФункции //ФорматКвоВЕд


Значения Кво печатных форм заменить на ФорматКвоВоВсехЕд(Товар,Кво).
Писала на скорую руку в качестве примера, а не рабочего образца, т.е. возможны неточности и ошибки. Понятно, что все можно сделать гораздо красивше.
Видимые минусы:
-- будут нюансы, когда начнут распаковывать упаковки до того, как продадут уже распакованные остатки;
-- не знаю, насколько увеличится время формирования отчетов (останется ли оно удовлетворительным при наличии большого ассортимента);
-- к-во всегда пересчитывается в единицы, начиная с крупных, т.е. учет может не отвечать факту: взяли не 1 ящик, а 7 разрозненных упаковок;
-- почие -.
Видимые плюсы:
-- простейшая доработка;
-- не затрагивает ни структуру базы, ни структуру учета.

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

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


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

 

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