Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
28 Мар 2017, 16:57
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: (Корректировка движений регистров)  (Прочитано 704 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GanG031

  • ***
  • Сообщений: 138
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Доброго времени суток, Уважаемые! Суть в следующем: пишу обработку, на которой размещается 2 таблицы значений, 2 кнопки. В первой таблице значений данные из текстового файла, во второй данные, загруженные из регистра сведений. Реквизиты у обоих тз одинаковые (Период, Сотрудник, Табельный Номер, Составная Часть, Индексируется, Сумма). Суть обработки в том, что мы загружаем данные, выгруженные из одной конфигурации, а именно движения регистра накопления, и сравниваем их с нашими движениями регистра. По полям "Период, сотрудник, табельный номер, составная часть, индексируется" мы однозначно идентифицируем строку, если такое совпадение найдено, но сравниваем сумму, и если она различна, то изменяем ее. На форме 2 кнопки: Загрузить (загружает данные из файла и регистра, и выводит их на форму) и Исправить (исправляем сумму). Начал писать вот такой код(благо, форумчане помогли):

<code>
&НаКлиенте
Процедура Загрузить(Команда)
   ЗагрузитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьНаСервере()
       Текст = Новый ТекстовыйДокумент();
Текст.Прочитать("D:\1.txt");
СимволРазделитель = ";";
Для a = 1 По Текст.КоличествоСтрок() Цикл
   Стр = Текст.ПолучитьСтроку(a) ;
   
   ВременнаяСтрока = Стр;
   //найдем разделитель
   НомерСимвола = Найти(ВременнаяСтрока, СимволРазделитель);
   
   Период =           СокрЛП(Лев(ВременнаяСтрока, НомерСимвола -1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
   НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   Сотрудник =       СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   ТабельныйНомер =    СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   СоставнаяЧасть =    СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =    Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола   = Найти(ВременнаяСтрока,СимволРазделитель);
   Индексируется =       СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
 
     
   Сумма =  Число (ВременнаяСтрока);
   


   ТаблицаЗначений = Новый ТаблицаЗначений;
   ТаблицаЗначений.Колонки.Добавить("Период");
   ТаблицаЗначений.Колонки.Добавить("Сотрудник");
   ТаблицаЗначений.Колонки.Добавить("ТабельныйНомер");
   ТаблицаЗначений.Колонки.Добавить("СоставнаяЧасть");
   ТаблицаЗначений.Колонки.Добавить("Индексируется");
   ТаблицаЗначений.Колонки.Добавить("Сумма");
    
      Строка = ТаблицаЗначений.Добавить();
      Строка.Сотрудник = ВременнаяСтрока.Сотрудник;
      Строка.ТабельныйНомер = ВременнаяСтрока.ТабельныйНомер;
      Строка.СоставнаяЧасть =ВременнаяСтрока. СоставнаяЧасть;
      Строка.Индексируется = ВременнаяСтрока.Индексируется;
      Строка.Сумма = ВременнаяСтрока.Сумма;
          
    КонецЦикла;
ЗначениеВДанныеФормы(ТаблицаЗначений, Таблица1);   
КонецПроцедуры
</code>

Подскажите пожалуйста дальнейший алгоритм действий. Пока дошел до того, что бы выгрузить Таблицу значений в таблицу значений на форме, но почему то на форме оказывается только последняя строка из таблицы значений( видимо данные по циклу перезаписываются в одну строку, и соответственно последняя строка у нас выводится). Подскажите пожалуйста, в чем ошибка?

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн GanG031

  • ***
  • Сообщений: 138
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
что то странное, ничего не изменял вроде бы в коде, но начала выскакивать ошибка :
{Форма.Форма.Форма(55)}: Значение не является значением объектного типа (Сотрудник)
      Строка.Сотрудник = ВременнаяСтрока.Сотрудник;

Оффлайн 1С-Учебный Центр №3

  • *
  • Сообщений: 48
  • РЕПУТАЦИЯ: 2
  • КПД: 4%
  • тел. (495) 542-19-94
  • Регистрация: 2013-03-14
  • Компания: 1С-Учебный Центр №3
  • Профессия: Консультант 1С
Доброго времени суток, Уважаемые! Суть в следующем: пишу обработку, на которой размещается 2 таблицы значений, 2 кнопки. В первой таблице значений данные из текстового файла, во второй данные, загруженные из регистра сведений. Реквизиты у обоих тз одинаковые (Период, Сотрудник, Табельный Номер, Составная Часть, Индексируется, Сумма). Суть обработки в том, что мы загружаем данные, выгруженные из одной конфигурации, а именно движения регистра накопления, и сравниваем их с нашими движениями регистра. По полям "Период, сотрудник, табельный номер, составная часть, индексируется" мы однозначно идентифицируем строку, если такое совпадение найдено, но сравниваем сумму, и если она различна, то изменяем ее. На форме 2 кнопки: Загрузить (загружает данные из файла и регистра, и выводит их на форму) и Исправить (исправляем сумму). Начал писать вот такой код(благо, форумчане помогли):

<code>
&НаКлиенте
Процедура Загрузить(Команда)
   ЗагрузитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьНаСервере()
       Текст = Новый ТекстовыйДокумент();
Текст.Прочитать("D:\1.txt");
СимволРазделитель = ";";
Для a = 1 По Текст.КоличествоСтрок() Цикл
   Стр = Текст.ПолучитьСтроку(a) ;
   
   ВременнаяСтрока = Стр;
   //найдем разделитель
   НомерСимвола = Найти(ВременнаяСтрока, СимволРазделитель);
   
   Период =           СокрЛП(Лев(ВременнаяСтрока, НомерСимвола -1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
   НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   Сотрудник =       СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   ТабельныйНомер =    СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   СоставнаяЧасть =    СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =    Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола   = Найти(ВременнаяСтрока,СимволРазделитель);
   Индексируется =       СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
 
     
   Сумма =  Число (ВременнаяСтрока);
   


[color=красный ]   ТаблицаЗначений = Новый ТаблицаЗначений;[/color]
   ТаблицаЗначений.Колонки.Добавить("Период");
   ТаблицаЗначений.Колонки.Добавить("Сотрудник");
   ТаблицаЗначений.Колонки.Добавить("ТабельныйНомер");
   ТаблицаЗначений.Колонки.Добавить("СоставнаяЧасть");
   ТаблицаЗначений.Колонки.Добавить("Индексируется");
   ТаблицаЗначений.Колонки.Добавить("Сумма");
    
      Строка = ТаблицаЗначений.Добавить();
      Строка.Сотрудник = ВременнаяСтрока.Сотрудник;
      Строка.ТабельныйНомер = ВременнаяСтрока.ТабельныйНомер;
      Строка.СоставнаяЧасть =ВременнаяСтрока. СоставнаяЧасть;
      Строка.Индексируется = ВременнаяСтрока.Индексируется;
      Строка.Сумма = ВременнаяСтрока.Сумма;
          
    КонецЦикла;
ЗначениеВДанныеФормы(ТаблицаЗначений, Таблица1);   
КонецПроцедуры
</code>

Подскажите пожалуйста дальнейший алгоритм действий. Пока дошел до того, что бы выгрузить Таблицу значений в таблицу значений на форме, но почему то на форме оказывается только последняя строка из таблицы значений( видимо данные по циклу перезаписываются в одну строку, и соответственно последняя строка у нас выводится). Подскажите пожалуйста, в чем ошибка?


Таблица значений создается в цикле (нужная строка выделена цветом), поэтому в ней одна единственная строчка.
Создание таблицы значений нужно делать перед циклом. Далее таблицу значений закидываем во временную таблицу. Проводим сопоставление с объектами ИБ(средствами запроса). Дальше запросом вытаскиваем различающиеся записи между двумя таблицами.


Теги:
 

Документ "Корректировка амортизации"

Автор FiestaРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4698
Последний ответ 26 Июл 2011, 15:27
от Вероничка
Флаг "Ручная корректировка" в документе

Автор Natylia89Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 5428
Последний ответ 26 Окт 2012, 10:48
от Natylia89
Документ "Корректировка реализации" изменения в релизе 3.0.36.18 в параметре Отражать корректировку

Автор gapp2009Раздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1650
Последний ответ 16 Дек 2014, 02:00
от gapp2009
Контроль остатков товаров в документе "Корректировка реализации"

Автор LadyGaGa2012Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2034
Последний ответ 14 Май 2014, 12:29
от LadyGaGa2012
Ручная корректировка проводок в документе "Начисление зарплаты"

Автор JemchujinaРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 6636
Последний ответ 04 Июн 2014, 13:05
от omv

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
alex0402
122 Сообщений
MuI_I_Ika MuI_I_Ika
53 Сообщений
Norfolk
52 Сообщений
LexaK
46 Сообщений
друган
20 Сообщений
AsadRoman
20 Сообщений
alexandr_ll
20 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal