7.7 Перемещение МПЗ - количество

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем gammarus, 5 сен 2008.

  1. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Подскажите, пожалуйста, как сделать, чтобы в документе перемещение МПЗ при выборе номенклатуры в колонке "Количество" сразу же подставлялись остатки ТМЦ, которые можно было бы выбрать полностью или ввести меньшее количество. (конфигурация УСН 1.3 (7.70.156))
  2. bob
    Offline

    bob Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    386
    Симпатии:
    0
    Баллы:
    26
    Что бы так сделать, надо немного код подправить.

    а чем не устраивает количество которое вы видите при подборе номенклатуры или суть в том, чтобы оно просто переносилось в строки документа?...
  3. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Вот это и надо, чтобы остатки, которые видим при выборе номенклатуры, переносились в таблицу документа МПЗ. Где (наверное в форме документа ) и как надо подправить код?
  4. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Вопрос все еще актуален
  5. MaxxaM
    Offline

    MaxxaM Опытный в 1С

    Регистрация:
    16 окт 2007
    Сообщения:
    288
    Симпатии:
    2
    Баллы:
    29
    Проблема в том что, остатки выводимые в табличной части формы выбора,
    никак не передаються в документ получатель, но как вариант енто можно обойти:
    1. Организовать глобальную переменную куда при закрытии окна выбора будет записываться остаток и отражать в МПЗ значение этой переменной.
    2. Сделать запрос на остаток в МПЗ при выборе значения. (Имхо правильней, так как всегда существует шанс, что в окне выбора - устаревшая информация). :unsure:
  6. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо, если еще скажите - как - буду очень признательна (или что читать)
  7. bob
    Offline

    bob Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    386
    Симпатии:
    0
    Баллы:
    26
    ищи кнопку "подбор" в самом низу документа . вообще можно пользоваться ей и скорее всего так будет удобнее, если нет, то по принципу её действия можно изобразить что-то свое.
  8. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Кнопку нашла, подскажите, где хранятся остатки по номенклатуре и как их оттуда получить?
  9. bob
    Offline

    bob Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    386
    Симпатии:
    0
    Баллы:
    26
    все остатки и движения в бухгалтерии хранятся на бухгалтерских счетах. Товар на одном счете, материал на другом и т.д. и т.п.
  10. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Это понятно, а что изменить в форме документа (МПЗ например)? Поясню что хочу: В документе МПЗ при выборе номенклатуры видим и остатки, как сделать, чтобы в таблицу документа МПЗ для выбранной номенклатуры подставлялись ВСЕ ее остатки (склад один) с возможностью редактирования?
  11. bob
    Offline

    bob Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    386
    Симпатии:
    0
    Баллы:
    26
    имеешь ввиду, чтобы при выборе номенклатуры небыло запроса на ввод количества, а по умолчанию переносилось кол-во в документ?
  12. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Видимо, самой писать совсем неохота :unsure: Ну да ладно.

    В модуле формы документа "ПеремещениеМПЗ" найди процедуру "ПриВыбореНоменклатуры".
    Перед ней вставь следующую функцию:
    Код:
    //Взято из формы списка "ДляПодбораМатериалов" справочника "Номенклатура". Чуть подправлено.
    Функция ОстатокНаСкладе(Товар)
    Остаток = 0;
    ДатаИтогов = РабочаяДата();	
    ОбъектНалогообложения = Константа.ОбъектНалогообложения.Получить(ДатаИтогов);
    ДоходыМинусРасходы = Перечисление.ВариантОбъектаНалогообложения.ДоходыМинусРасходы;
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    Сч10_1 = СчетПоКоду("10.1");
    Сч10_2 = СчетПоКоду("10.2");
    Сч10_3 = СчетПоКоду("10.3");
    Сч41_1 = СчетПоКоду("41.1");
    Сч41_2 = СчетПоКоду("41.2");
    Сч41_3 = СчетПоКоду("41.3");
    Сч43   = СчетПоКоду("43");
    Сч004  = СчетПоКоду("004");
    БухИт.ПериодМ(ДатаИтогов);	
    
    Если (КонМесяца(ДатаИтогов) <= КонецРассчитанногоПериодаБИ()) Тогда  
    Если ПустоеЗначение(МестоХранения) = 0 Тогда
    Если Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар Тогда
    Остаток = БухИт.СКД("МХ.2", "К",,Товар, МестоХранения);
    
    ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.ТоварНаКомиссии Тогда
    Остаток = БухИт.СКД("МХ.4", "К",,Товар ,МестоХранения);
    
    ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Продукция Тогда
    Остаток = БухИт.СКД("МХ.3", "К",,Товар ,МестоХранения);
    
    ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал Тогда
    Остаток = БухИт.СКД("МХ.1", "К",,Товар ,МестоХранения);
    КонецЕсли;	
    Иначе    
    Если ОбъектНалогообложения = ДоходыМинусРасходы Тогда
    Если Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар Тогда
    Остаток = БухИт.СКД(Сч41_1, "К",,Товар)+ БухИт.СКД(Сч41_2, "К",,Товар) + БухИт.СКД(Сч41_3, "К",,Товар);
    
    ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Продукция Тогда
    Остаток = БухИт.СКД(Сч43, "К",,Товар);
    
    ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал Тогда
    Остаток = БухИт.СКД(Сч10_1, "К",,Товар) + БухИт.СКД(Сч10_2, "К",,Товар) + БухИт.СКД(Сч10_3, "К",,Товар);
    КонецЕсли;	
    Иначе
    Если Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар Тогда
    Остаток = БухИт.СКД(Сч41_1, "К",,Товар);
    
    ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Продукция Тогда
    Остаток = БухИт.СКД(Сч43, "К",,Товар);
    
    ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал Тогда
    Остаток = БухИт.СКД(Сч10_1, "К",,Товар);
    КонецЕсли;	
    КонецЕсли;
    Если Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.ТоварНаКомиссии Тогда
    Остаток = БухИт.СКД(Сч004, "К",,Товар);
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    Возврат Остаток;
    
    КонецФункции // ОстатокНаСкладе() 
    
    
    А саму процедуру "ПриВыбореНоменклатуры" измени так:
    Код:
    Процедура ПриВыбореНоменклатуры()         
    Если Номенклатура.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Материал Тогда
    Контрагент = "";
    Договор = "";
    КонецЕсли;
    //Здесь будем считать количество выбранной номенклатуры и вносить его в табличную часть
    Количество = ОстатокНаСкладе(Номенклатура);
    КонецПроцедуры	// ПриВыбореНоменклатуры()
    
    
    И будет тебе счастье
  13. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо! Научусь-буду писать сама.
  14. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Работает, но выдает такое сообщение:
    err Поле агрегатного объекта не обнаружено (ОстаткиТМЦ)
  15. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Видимо, конфигурация у Вас правленая. По крайней мере, те изменения, которые были описаны выше, не могут привести к такой ошибке. Если у ошибки указывается номер строки, то нужно посмотреть, что там такое написано. Но, скорее всего, у Вас в табличной части в колонке "Количество" на закладке "Дополнительно" в поле "Формула" что-то вызывается (процедура какая-то). Нужно разобраться кто и с какой целью там что-то написал :unsure: И, если это ненужно, просто очистить поле.

    Хотя, я на 157 релизе смотрел (у меня нет ошибок), может в 156-ом по-другому что-то. Но, все поправимо ;)
  16. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Тестировала на демо-конфигурации УСН, что с диска установилась. Наверное, там не правленная. в колонке количество (дополнительно-формула) стоит: Количество = Регистр.ОстаткиТМЦ.Количество (релиз 157)
  17. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Откуда в УСН регистры???
    В общем очистить это поле надо.
  18. TopicStarter Overlay
    gammarus
    Offline

    gammarus

    Регистрация:
    30 июл 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Очистила - и сообщение не появляется. В чистой базе этой формулы в поле количество не было. Спасибо большое!
Похожие темы
  1. Атали
    Ответов:
    1
    Просмотров:
    418
  2. jumper
    Ответов:
    1
    Просмотров:
    812
  3. natafffffka90
    Ответов:
    1
    Просмотров:
    523
  4. Vitaly
    Ответов:
    1
    Просмотров:
    642
  5. Vitaly
    Ответов:
    5
    Просмотров:
    948
Загрузка...

Поделиться этой страницей