8.х Учебные задачки

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

  1. TopicStarter Overlay
    Сергеевич
    Offline

    Сергеевич

    Регистрация:
    20 авг 2014
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток! Не соображу как правильно решить задачки
    1. В типовой Бух 2.0 нужно с помощью обработки в регистре бухгалтерии Хозрасчетный отсторнировать все остатки на указанную дату.Должен быть не слишком замудренный способ, может через Операцию бух, но там только возможность с указанием доков.

    2. Нужно наваять запрос который выбирает из справочника все элементы, наименование которых состоит строго из четырех слов. Прием с ПОДОБНО "% % % %" отбрасывает только те у которых меньше 4-х, как добиться, чтоб и те которые больше отбрасывало? Уже запарился с комбинациями разных символов, не получается.
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Чеёто? Там счет нужно указать и его субконто.
    Хоть приблизительно знаете как начать?
  3. Morris
    Offline

    Morris Новичок в 1С

    Регистрация:
    13 авг 2014
    Сообщения:
    22
    Симпатии:
    1
    Баллы:
    4
    1. Для 1.5 из запасов, но, думаю, и для 2.0 сойдет
    Код:
    Процедура ОбнулитьОстатокПоСчету(Счет, НаДату)
      Запрос = Новый Запрос;
      Запрос.Текст =
      "ВЫБРАТЬ
      |  ХозрасчетныйОстатки.Счет КАК Счет,
      |  ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
      |  ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
      |  ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
      |  ХозрасчетныйОстатки.СуммаОстаток
      |ИЗ
      |  РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
      |
      |УПОРЯДОЧИТЬ ПО
      |  Счет,
      |  Субконто1,
      |  Субконто2,
      |  Субконто3";
      Запрос.УстановитьПараметр("Счет", Счет);
      Запрос.УстановитьПараметр("НаДату", НаДату);
      ТЗ = Запрос.Выполнить().Выгрузить();
      Док = Документы.ОперацияБух.СоздатьДокумент();
      Док.Дата = НаДату - 1;
      Док.Организация = ОсновнаяОрганизация;
      Док.Ответственный = глТекущийПользователь;
      Док.Содержание = "Обнуление остатков по счету " + Счет.Код + " на начало " + Формат(НаДату, "ДФ='dd.MM.yyyy HH:mm:ss'");
      Док.Записать();
      Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
      Проводки.Отбор.Регистратор.Установить(Док.Ссылка);
      Проводки.Прочитать();
       КоррСчет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("000");
       Для каждого СтрТЗ из ТЗ цикл
         Движение = Проводки.Добавить();
         Движение.Регистратор = Док.Ссылка;
         Движение.Период = Док.Дата;
         Если СтрТЗ.СуммаОстаток > 0 тогда
           Движение.СчетДт = Счет;
           Если Не Счет.Забалансовый тогда
             Движение.СчетКт = КоррСчет;
           КонецЕсли;
           пЗаполнитьСубконто(Счет, Движение.СубконтоДт, СтрТЗ);
           Движение.Сумма = - СтрТЗ.СуммаОстаток;
         ИначеЕсли СтрТЗ.СуммаОстаток < 0 тогда
           Движение.СчетКт = Счет;
           Если Не Счет.Забалансовый тогда
             Движение.СчетДт = КоррСчет;
           КонецЕсли;
           пЗаполнитьСубконто(Счет, Движение.СубконтоКт, СтрТЗ);
           Движение.Сумма = СтрТЗ.СуммаОстаток;
         КонецЕсли;
         Док.СуммаОперации = Док.СуммаОперации + Движение.Сумма;
       КонецЦикла;
      Проводки.Записать();
      Док.Записать();
      Док.ПолучитьФорму().Открыть();
    КонецПроцедуры
    
    Процедура пЗаполнитьСубконто(Счет, Субконто, СтрТЗ)
       НомерСубконто = 0;
       Для каждого ВидСубконто из Счет.ВидыСубконто цикл
         НомерСубконто = НомерСубконто + 1;
         ЗначениеСубконто = СтрТЗ["Субконто" + НомерСубконто];
         Субконто.Вставить(ВидСубконто.ВидСубконто, ЗначениеСубконто);
       КонецЦикла;
    КонецПроцедуры
    
    2.
    Код:
    ГДЕ
        Таб.Поле ПОДОБНО "% % % %"
        И НЕ Таб.Поле ПОДОБНО "% % % % %"
    Последнее редактирование: 22 авг 2014

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