8.х ЛЗК

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

  1. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Подскажите как сделать, я делаю заявку, и мне нужно чтоб при вводе количества горючева в заявке, автоматически создавалась лимитно заборная карта
  2. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    1. Ваша конфигурация?
    2. Надо писать "Горючего"

    В следующий раз тема будет просто удалена.
  3. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Сори, за орфографические ошибки, необратил внимания.
    А на счет конфигурации то она с нуля рисованая, так что я хотел бы просто принцип узнать как делается то что я выше описал, на любом примере.
  4. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Если бы знать что такое "лимитно заборная карта", то можно про что то и думать...
  5. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    да впринципе неважно что это, я хотел бы узнать сам принцип, как при вводе определенной колонки в документе сделать так чтобы автоматически формировался другой документ, ну а вообще ниже два скрина, заявка на топливо и ЛЗК(лимитно заборная карта)
    интересует чтоб при заполнении в заявке колонки "Заправлено" формировалась автоматически ЛЗК

    Вложения:

  6. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    А вариант с событием "Окончание ввода текста" не подойдет?
  7. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    А можно на примере? , мне так легче будит разобраться, я ж тока начинающий. зарание пасиба
  8. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Выбираете ячейку ТабличнойЧасти, свойства. В самом низу списка свойств - еванты, жмете на лупу - формируется обработчик, куда можно совать что угодно...

    Посмотреть вложение 1058

    Вложения:

    • Clipboard02.jpg
      Clipboard02.jpg
      Размер файла:
      196,5 КБ
      Просмотров:
      107
  9. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Вообще учтите, вот вы так сделаете, а что будет после того, как вы удалите строку из документа? Будете искать вашу ЛЗК и удалять тоже?

    Есть несколько вариантов
    1. На мой взгляд более правильный - это обработать "НачалоВыбора" у вашей ячейки, в обработчике написать:
    Код:
    СтандартнаяОбработка = Ложь;
    ЛЗК = ... //Создать ЛЗК
    // Заполнить ячейку нужным значением, 
    // я думаю, что оно из ЛЗК и возьмется
    
    
    2. После того как ввели текст обработкть создания ЛЗК, событие "ОкончаниеВводаТекста", тут Melanto прав.

    Но в любом случае, что бы вы ни сделали я очень рекомендую в строке делать ссылку на вашу ЛЗК, чтобы можно было легко отредактировать ЛЗК (не создавать повторно, в случае изменения в тексте), а так же удалять их, Если удалена строка из документа.
  10. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1

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

    Если у кого есть примеры выполнения таких вещей, буду благодарен если поделитесь
  11. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    вот что у меня получилось:
    в документе источнике:

    Код:
    Процедура НоменклатураЗаправленоПриИзменении(Элемент)
    НовДокумент=Документы.ЛимитноЗаборнаяКарта.СоздатьДокумент();
    НовДокумент.Заполнить(ссылка);
    ФормаНовыйДокумент=НовДокумент.ПолучитьФорму(,ЭтаФорма);
    ФормаНовыйДокумент.ОткрытьМодально();
    КонецПроцедуры
    
    
    в документе приемнике:

    Код:
    Процедура ОбработкаЗаполнения(Основание)
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаявкаНаТопливо") Тогда
    // Заполнение шапки
    Автор = Основание.Автор;
    Организация = Основание.Организация;
    ПоследняяКорректировка = Основание.ПоследняяКорректировка;
    Примечание = Основание.Примечание;
    Отправитель = Основание.Склад;
    Склад = Основание.Склад;
    Для Каждого ТекСтрокаНоменклатура Из Основание.Номенклатура Цикл
    НоваяСтрока = Номенклатура.Добавить();
    НоваяСтрока.Номенклатура = ТекСтрокаНоменклатура.ВидТоплива;
    НоваяСтрока.Ед = ТекСтрокаНоменклатура.Ед;
    НоваяСтрока.Количество = ТекСтрокаНоменклатура.Заправлено;
    НоваяСтрока.Склад = ТекСтрокаНоменклатура.Транспорт;
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры
    
    
    а как сделать так чтобы в получающий документ в табличную часть бралась только та строка в которой я поставил цифру, а не все строки которые там есть
  12. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Всё разобрался, всем спасиба, если кому интересна то выложу как получилось
  13. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    Вот документ источник
    Код:
    Процедура НоменклатураЗаправленоПриИзменении(Элемент)
    ТекСтрока=ЭлементыФормы.Номенклатура.ТекущиеДанные;
    НовДокумент=Документы.ЛимитноЗаборнаяКарта.СоздатьДокумент();
    НовДокумент.Заполнить(ссылка);
    НовДокумент.НовыйСклад = ТекСтрока.Транспорт;
    НовДокумент.Получатель = ТекСтрока.Механизатор;
    НовДокумент.Примечание =  "Заполнен по Заявке на топливо № " + Номер + " от " + Дата;
    НоваяСтрока = НовДокумент.Номенклатура.Добавить();
    НоваяСтрока.Номенклатура = ТекСтрока.ВидТоплива;
    НоваяСтрока.Ед = ТекСтрока.Ед;
    НоваяСтрока.Количество = ТекСтрока.Заправлено;
    НоваяСтрока.Коэффициент = 1;
    ФормаНовыйДокумент=НовДокумент.ПолучитьФорму(,ЭтаФорма);
    ФормаНовыйДокумент.ОткрытьМодально();
    КонецПроцедуры 
    
    
    Вот приемник
    Код:
    Процедура ОбработкаЗаполнения(Основание)
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаявкаНаТопливо") Тогда
    // Заполнение шапки
    Автор = Основание.Автор;
    Дата = Основание.Дата;
    Организация = Основание.Организация;
    Отправитель = Основание.Склад;
    Склад = Основание.Склад;
    КонецЕсли;
    КонецПроцедуры
    
    
    Все красиво передает и заполняет как надо, а теперь помогите плз с таким:
    У меня в документе источнике, т.е. "Заявка на топливо" есть еще такая колонка в табличной части "Заправщик" она у меня "булево" как мне сделать так чтоб только передавались те строки в документ приемник в которых в этой колонке "Заправлено" стоит галочка
  14. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    код

    Код:
    Процедура НоменклатураЗаправленоПриИзменении(Элемент)
    ТекСтрока=ЭлементыФормы.Номенклатура.ТекущиеДанные;
    НовДокумент=Документы.ЛимитноЗаборнаяКарта.СоздатьДокумент();
    НовДокумент.Заполнить(ссылка);
    НовДокумент.Автор = Автор;
    НовДокумент.Дата = Дата;
    НовДокумент.Склад = Склад;
    НовДокумент.Отправитель = Склад;
    НовДокумент.Организация = Организация;
    НовДокумент.ПоследняяКорректировка = ПоследняяКорректировка;
    НовДокумент.НовыйСклад = ТекСтрока.Транспорт;
    НовДокумент.Получатель = ТекСтрока.Механизатор;
    НовДокумент.Примечание =  "Заполнен по Заявке на топливо № " + Номер + " от " + Дата;
    НоваяСтрока = НовДокумент.Номенклатура.Добавить();
    НоваяСтрока.Номенклатура = ТекСтрока.ВидТоплива;
    НоваяСтрока.Ед = ТекСтрока.Ед;
    НоваяСтрока.Количество = ТекСтрока.Заправлено;
    НоваяСтрока.Коэффициент = 1;
    ФормаНовыйДокумент=НовДокумент.ПолучитьФорму(,ЭтаФорма);
    ФормаНовыйДокумент.ОткрытьМодально();
    КонецПроцедуры     
    
    
    Это у меня создает новый документ при заполнении колонки заправлено

    А ниже идущее создает документы при нажатии на кнопку заполнить

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

    А теперь подскажите такое, как мне сделать так чтоб документ перемещение создавался с временем на минуту меньше чем Лимитно заборная карта
  15. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    ДатаПеремещения=ДатаЛимитка-60
    Если ничего не путаю, там же все в секундах

    По крайней мере, когда надо было вычесть ровно 30 дней, это выглядело так

    МассивНачальныхДат[4]=Дата-(30)*60*60*24;
  16. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    хм, помогло но немнога нетак, еси ставил в перемещении - к дате то мне число плюсовалось, а поставил в лимите к дате + она мне время увеличела, впринципе меня устраивает,
    А еще вопросик, как в документе перемещение, который формируется сделать так чтоб в табличной части одинаковыи позиции номенклатуры сумировались
    т.е. в заявке у мну например бензин а-80 30литров, а-95 40литров, потом еще идет а-80 20литров,
    как сделать чтоб в перемещении а-80 был не два раза а один раз с сумой литров, т.е. в перемещении будит а-80 50литров и а-95 40 литров ?
  17. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Есть вот такая фиговина:

    Табличная часть
    Свернуть (GroupBy)
    Синтаксис:
    Свернуть(<Колонки группировок>, <Колонки суммирования>)
    Параметры:
    <Колонки группировок> (обязательный)
    Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо группировать строки табличного поля.
    <Колонки суммирования> (необязательный)
    Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках табличного поля.
    Описание:
    Осуществляет свертку табличной части по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
    Важно! Оба списка колонок должны покрывать всю табличную часть . Списки колонок не должны пересекаться.

    Пример:
    Состав.Свернуть("Номенклатура", "Количество, Сумма, Всего");

    Других примеров, увы, под рукой нет
  18. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    вот что говорит: {Документ.ЗаявкаНаТопливо.Форма.ФормаДокумента(61,8)}: Процедура или функция с указанным именем не определена (Свернуть)
    <<?>>Свернуть("Номенклатура", "Количество");
  19. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Не Документ, не его форма, а ТабличнаяЧасть
    Кажется, д.б. так:
    Код:
    НовыйДокумент.Номенклатура.Свернуть("номенклатура","количество")
    

    Только учтите, в результате в ТЧ Номенклатура будет две колонки - номенклатура и количество, больше ничего
  20. TopicStarter Overlay
    Vovan27
    Offline

    Vovan27

    Регистрация:
    17 июл 2008
    Сообщения:
    45
    Симпатии:
    0
    Баллы:
    1
    хм а есть вариант чтоб и остальные колонки были, у меня там еще единица измерения и коэффициент ?

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